簡體   English   中英

有什么方法可以直接進入 Android 中的“啟用 USB 調試”頁面?

[英]Any way to go directly to the "Enable Usb Debugging" page in Android?

是否有直接轉到“啟用 USB 調試”切換的 Intent 或請求啟用它的方法?

---情況說明---

我們有一個應用程序,用於一次在多部手機上進行測試,並且它們都啟用了開發者模式。 但是,當它們全部重新刷新時,需要啟用 usb 調試。

我們知道如何通過 ADB 執行此操作,但我們的用例需要使用傳統的 Android 方法。

--- 結束說明

是否可以打開一個對話框,讓用戶直接進入 USB 調試選項?

同樣,是否可以使用開發人員模式執行此操作?

我認為沒有辦法做到這一點,對於開發人員來說,此選項必須由您自己啟用,而不是通過編碼來啟用

不,恐怕不可能。

這是可以使用Intent打開的所有設置的列表 ,請注意,其中不包括USB調試。

您可以獲得的最接近的結果是使用ACTION_APPLICATION_DEVELOPMENT_SETTINGS更多信息 )打開開發設置(如問題的后半部分所述),該操作將執行以下操作:

動作:顯示設置以允許配置與應用程序開發相關的設置。

前言

由於存在用於開發人員選項(包括無線調試)的快速設置磁貼,並且長按一個可以將您帶到設置中的相關頁面,我想弄清楚它發送的意圖是什么以及如何復制它。

觀察

我開始搜索負責設置中開發人員選項頁面 UI 的源文件。 我發現DevelopmentSettingsDashboardFragment.java有方法handleQsTileLongPressActionIfAny 在這個方法中,我看到它正在尋找一個帶有ACTION_QS_TILE_PREFERENCES操作的意圖和一個EXTRA_COMPONENT_NAME extra,它有一個 ComponentName 匹配設置包名稱( getPackageName() = com.android.settings )和 tile 子類名稱( DevelopmentTiles.WirelessDebugging.class.getName() = com.android.settings.development.qstile.DevelopmentTiles$WirelessDebugging ,參見DevelopmentTiles.java )。

示例(代碼)

根據這些觀察,我編寫了以下示例代碼:

Intent intent = new Intent(TileService.ACTION_QS_TILE_PREFERENCES);
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, new ComponentName("com.android.settings", "com.android.settings.development.qstile.DevelopmentTiles$WirelessDebugging"));
try {
    startActivity(intent);
    finish();
} catch (Exception e) {
    Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
    finish();
}

測試示例(圖片)

經過測試,它可以完美運行。 無線調試的快速設置磁貼甚至不需要啟用它就可以工作(盡管必須啟用開發人員選項)。

在 Android 13(Google Pixel 7 Pro)上測試。

  • 帶有示例代碼的測試應用程序的主頁快捷方式

帶有示例代碼的測試應用程序的主頁快捷方式

  • 啟動應用程序,顯示無線調試設置頁面

啟動應用程序,顯示無線調試設置頁面

  • 在最近的應用列表中,它顯示為作為應用內的子活動運行

在最近的應用列表中,它顯示為作為應用內的子活動運行

暫無
暫無

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

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