簡體   English   中英

如何監視何時通過WiFi切換ADB?

[英]How I can monitor when ADB over WiFi has been toggled?

在我的應用程序中,我想監視何時啟用或禁用基於WiFi的ADB。 似乎沒有BroadcastIntent,所以我不知道如何監視此狀態。

您會推薦一種方法嗎? 我遇到的唯一方法是每隔幾秒鍾輪詢一次,並通過外殼檢查adbd在何處運行或不運行。 這似乎是可怕的,低效的,笨拙的。

有一個屬性確定adb可能正在偵聽的端口:

adb shell getprop service.adb.tcp.port

但顯然,無法在android系統內部收到有關屬性更改的通知: http : //rxwen.blogspot.fr/2010/01/android-property-system.html

您仍然必須對其進行輪詢以獲取有關更改的通知,但這也許更容易。 不過,設置此端口並不意味着adb可以通過wifi運行。 雖然有機會。

可以通過添加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");
                }
            }

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM