2

私のアプリケーションでは、ADB over WiFi がいつ有効または無効になったかを監視したいと考えています。これには BroadcastIntent がないように見えるので、これのステータスを監視する方法がわかりません。

これを行う方法をお勧めしますか?私が遭遇した唯一の方法は、数秒ごとにポーリングし、シェルを介して adbd が実行されているかどうかを確認することです。これは恐ろしく、恐ろしく非効率的で下品に思えます。

4

2 に答える 2

0

ContentOberserverこれは、設定を監視する を追加することで実現できます。ADB は5555デフォルトでポートで実行され、通常、-1有効になっていない場合は に設定されます。

getApplicationContext().getContentResolver().registerContentObserver(
    Settings.Secure.getUriFor("adb_port"), false, 
        new ContentObserver() {

            @Override
            public void onChange(boolean selfChange) {
                super.onChange(selfChange);
                Integer intPort = Settings.Secure.getInt(getContentResolver(), "adb_port", -1);
                if (intPort > -1)  {
                    System.out.println("Enabled");
                } else {
                    System.out.println("Disabled");
                }
            }

});
于 2014-03-17T11:20:38.707 に答える