3

adbに接続されているAndroidデバイスのリストをプログラムで取得する方法はありますか?

デスクトップアプリケーションのJavaでやりたいです。私はadb.exeのパスを持っていますが、「adbdevices」応答の解析は最善のアイデアではないようです。

より信頼できる方法はありますか?

4

2 に答える 2

5

これが私がやった方法です

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();
    }
于 2013-02-15T14:15:20.173 に答える
4

最適なソリューションは、リストで何をするかによって異なります。見つけたデバイスでいくつかのadbコマンドを実行する場合adb devicesは、出力の解析が当然の選択です。もう1つのオプションは、USBスタックを調べて、ADBインターフェイスが列挙されたデバイスのシリアル番号を収集することです。または、私のお気に入りです。Linuxでは、 udev接続されているすべてのADBデバイスを追跡するカスタムルールを作成するだけです。私はデータベースを使用していますが、すべてのADBデバイスのシンボリックリンクを作成してからファイルリストを確認するだけの簡単な方法である可能性があります。

于 2013-02-14T18:07:12.803 に答える