繁体   English   中英

以编程方式获取连接到adb的android设备的列表

[英]programmatically obtain a list of android devices connected to adb

有什么办法以编程方式获取连接到adb的android设备列表吗?

我想在Java桌面应用程序上执行此操作。 我有adb.exe的路径,但是在“ adb设备”响应上进行解析似乎不是最好的主意。

有没有更可靠的方法?

最佳解决方案取决于您将如何处理列表。 如果要在找到的设备上运行一些adb命令-解析adb devices输出是显而易见的选择。 另一个选择是遍历USB堆栈并使用枚举的ADB接口收集设备的序列号。 或我最喜欢的一个-在Linux下,我只创建了一个自定义udev规则,该规则可跟踪所有连接的ADB设备。 我的数据库正在使用中,但是它可能很简单,例如为每个ADB设备创建一个符号链接,然后检查文件列表。

这就是我的做法

try {
        Process process = Runtime.getRuntime().exec("adb devices");
        BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));  
        String line = null;  

        Pattern pattern = Pattern.compile("^([a-zA-Z0-9\\-]+)(\\s+)(device)");
        Matcher matcher;

        while ((line = in.readLine()) != null) {  
            if (line.matches(pattern.pattern())) {
                matcher = pattern.matcher(line);
                if (matcher.find())
                    System.out.println(matcher.group(1));
            }
        }  
    } catch (IOException e) {
        e.printStackTrace();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM