[英]How to enable USB debugging on Android Virtual Device (AVD) from ADB commands and by Java program?
[英]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.