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安装详解

  • 相关阅读:
    oracle 绿色版本 instantclient 使用说明
    response 后刷新页面,点击按钮后,禁用该按钮
    模式对话框里的CheckedChanged事件
    PDF合并
    Android手机上抓包神器
    春社日的推算方法
    Web APi入门之Self-Host(二)
    Web Api之Cors跨域以及其他跨域方式(三)
    Web APi入门之基本操作(一)
    Self Host WebApi服务传输层SSL加密(服务器端+客户端调用)
  • 原文地址:https://www.cnblogs.com/mengw/p/12073079.html
Copyright © 2011-2022 走看看