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命令链接:

Adb常用命令

Adb安装详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值