zoukankan      html  css  js  c++  java
  • java中通过Adb判断PC是否连接了移动设备

    最近用到PC端和移动端通过USB连接传输数据的方式,于是总在使用Adb命令,为了逻辑的严谨和代码容错,想在传输数据的之前,PC和移动端先建立一次会话,防止移动端还未连接就直接传输数据会报错,找了很久并未发现这类方法,于是自己在代码里面通过Adb实现了这个方法。供大家参考,欢迎大家有更好的实现方式多多交流。

    直接上代码

    	/**
         * @Description: 判断是否连接设备
         * @Param: []
         * @return: boolean  
         * @Author: Mengw9
         */
        public static boolean isLinkDevices(){
            String str = this.adbCmd("D:adbadb devices");
            assert str != null;
            str = str.replaceAll("List of devices attached", "").replaceAll("
    ", "");
            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+"
    ";
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }
    
    

    使用这个代码需要在本地下载有adb的驱动,我的是直接放在D盘

    adb驱动分享一下 https://www.lanzous.com/b0bk4wlpe 密码: 8uz5

    其他学习Adb命令链接:

    Adb常用命令

    Adb安装详解

  • 相关阅读:
    网络流相关题目
    【洛谷P3119】[USACO15JAN]草鉴定Grass Cownoisseur
    【洛谷八连测R6】yanQval-透明的星尘
    【洛谷八连测R6】yanQval-分离丧失的既视感
    【洛谷八连测R6】yanQval-不可逆的重启动
    【洛谷P2700】逐个击破
    【洛谷八连测R5】whzzt-Confidence
    【洛谷八连测R5】whzzt-Warmth
    【洛谷八连测R5】whzzt-Conscience
    【NOIP模拟赛】
  • 原文地址:https://www.cnblogs.com/mengw/p/12073079.html
Copyright © 2011-2022 走看看