java中通过Adb判断PC是否连接了移动设备
最近用到PC端和移动端通过USB连接传输数据的方式,于是总在使用Adb命令,为了逻辑的严谨和代码容错,想在传输数据的之前,PC和移动端先建立一次会话,防止移动端还未连接就直接传输数据会报错,找了很久并未发现这类方法,于是自己在代码里面通过Adb实现了这个方法。供大家参考,欢迎大家有更好的实现方式多多交流。
直接上代码
/**
* @Description: 判断是否连接设备
* @Param: []
* @return: boolean
* @Author: Mengw9
*/
public static boolean isLinkDevices(){
String str = this.adbCmd("D:\adb\adb devices");
assert str != null;
str = str.replaceAll("List of devices attached", "").replaceAll("\n", "");
if (!str.isEmpty()){
System.out.println("已连接设备,设备名为:"+str);
return true;
}
System.out.println("未连接设备");
return false;
}
/**
* @Description: 执行cmd命令
* @Param: [cmd]
* @return: void
* @Author: Mengw9
*/
public static String adbCmd(String cmd){
Process process;
try {
process=Runtime.getRuntime().exec(cmd);
System.out.println(inputStream2String(process.getInputStream()));
return inputStream2String(process.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* @Description: 返回流处理成字符串
* @Param: [inputStream]
* @return: java.lang.String
* @Author: Mengw9
*/
private static String inputStream2String(InputStream inputStream){
String result="";
BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));
try {
String temp="";
while ((temp=br.readLine())!=null){
result+=temp+"\n";
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
使用这个代码需要在本地下载有adb的驱动,我的是直接放在D盘
adb驱动分享一下 https://www.lanzous.com/b0bk4wlpe 密码: 8uz5
其他学习Adb命令链接:
java中通过Adb判断PC是否连接了移动设备的更多相关文章
- JAVA 中两种判断输入的是否是数字的方法__正则化_
JAVA 中两种判断输入的是否是数字的方法 package t0806; import java.io.*; import java.util.regex.*; public class zhengz ...
- Java中的空值判断
Java中的空值判断 /** * 答案选项: * A YouHaidong * B 空 * C 编译错误 * D 以上都不对 */ package com.you.model; /** * @auth ...
- tips:Java中while的判断条件
tips:Java中while的判断条件! 在c++中,有时候会遇到这种情况: while(x = y){ dosomething; } 如果x与y相等,这个时候如果循环体中没有跳出的点,那么会无限循 ...
- Java 中的"+"号(加法和连接)
Java 中的"+"号(加法和连接) public class Test { public static void main(String[] args) { System.out ...
- 关于JAVA中的String的使用与连接(转)
JAVA中的String连接性能 Java中的String是一个非常特殊的类,使它特殊的一个主要原因是:String是不可变的(immutable). String的不可变性是Ja ...
- 161101、在Java中如何高效判断数组中是否包含某个元素
如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作.同时,这个问题在Stack Overflow中也是一个非常热门的问题.在投票比较高的几个答案中给出了几种 ...
- 在Java中如何高效判断数组中是否包含某个元素
如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作.同时,这个问题在Stack Overflow中也是一个非常热门的问题.在投票比较高的几个答案中给出了几种 ...
- adb使用wifi无线连接调试Android设备
先上官方原文: Wireless usage adb is usually used over USB. However, it is also possible to use over Wi-Fi, ...
- java中Integer,String判断相等与integer的比较大小
package sfk.bbs.test.springjsbctempletTest; import static org.junit.Assert.*; import org.junit.Test; ...
随机推荐
- 异常0xc000041d的抛出过程
为了说明这个过程,我们必须写一个示例程序,如下: #include "stdafx.h" #include <tchar.h> #include <stdio.h ...
- 3.深入学习Servlet的Response和Request
一.HttpServletResponse web服务器接受到客户端的HTTP请求,对于这个请求分别创建一个代表请求的对象HttpServletRequest和一个代表响应的对象HttpServlet ...
- NOI2019 回家路线 DP
「NOI2019」回家路线 链接 loj 思路 f[i][j]第i个点,时间为j,暴力转移 复杂度O(m*t),好像正解是斜率优化,出题人太不小心了233 代码 #include <bits/s ...
- http响应消息
1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组 ...
- ModuleNotFoundError: No module named 'rest_framework_swagger'
pip3.6 install django-rest-swagger
- R = [obj for obj in recs[imagename] if obj['name'] == classname] KeyError: '007765'
在用RFBNet做测试的时候,好几次总是遇到 R = [obj for obj in recs[imagename] if obj['name'] == classname] KeyError: ' ...
- [原创]浅谈对任务分解法WBS应用
[原创]浅谈对任务分解法WBS应用 1.WBS是什么? 即Work Breakdown Structure如何进行WBS分解:目标→任务→工作→活动 2.WBS分解的原则:将主体目标逐步细化分解,最底 ...
- 2018ECNA Difference[时空复杂度]
目录 题干 代码和解释 题干 代码和解释 本题给出一个数列的第一个数A(1),要求找出m第一次出现(直接出现在数列中或是数列中某两项的差的绝对值)在这个数列的第几步中.数列递推公式:A(n+1)=A( ...
- HTML5中的Web Worker技术
为了让后台程序更好的执行,在HTML5中设计了Web Worker技术.Web Worker的产生主要是考虑到在HTML4中JavaScript Web程序都是以单线程的方式执行的,一旦前面的脚本花费 ...
- Android Studio 3.4 修改 .android 和.gradle缺省目录-windows7x64专业版环境。
说明:缺省会在用户目录建立.android和.gradle目录.会挤满C盘.可以改变缺省目录. 改变.gradle目录路径示例,修改到D:\android目录,步骤: 1.建立d:\android目录 ...