java 有什么方法可以直接进入Android中的“启用USB调试”页面吗?

s6fujrry  于 2022-12-21  发布在  Java
关注(0)|答案(3)|浏览(207)

是否有Intent可直接转到“启用USB调试”切换或请求启用它的方法?
---情况说明---
我们有一个应用程序,我们用来测试许多手机上一次,他们都启用了开发者模式,但是,usb调试需要启用时,他们都刷新。
我们知道如何通过ADB实现这一点,但我们的用例需要使用传统的Android方法。
---解释结束
是否可以打开一个对话框,允许用户直接进入Usb调试选项?
类似地,在开发人员模式下可以做到这一点吗?

hzbexzde

hzbexzde1#

不,恐怕不可能。
以下是可使用Intent打开的所有设置的列表,请注意USB调试不在其中。
最接近的方法是使用ACTION_APPLICATION_DEVELOPMENT_SETTINGS(更多信息)打开开发设置(如问题的后半部分所问),它执行以下操作:
活动措施:显示设置以允许配置与应用程序开发相关的设置。

dsekswqp

dsekswqp2#

我认为没有办法做到这一点,这对开发人员的选项,你必须自己启用它,而不是通过编码

lhcgjxsq

lhcgjxsq3#

前言

由于开发者选项(包括无线调试)存在快速设置磁贴,长按一个磁贴会把你带到设置中的相关页面,我想弄清楚它发送的是什么意图以及如何复制它。

观察结果

我从搜索负责设置中开发者选项页面UI的源文件开始。我找到了DevelopmentSettingsDashboardFragment.java,它具有方法handleQsTileLongPressActionIfAny。在此方法中,我看到它正在查找具有ACTION_QS_TILE_PREFERENCES操作的Intent和具有与设置包名称匹配的ComponentName的EXTRA_COMPONENT_NAME extra(getPackageName() = com.android.settings)和图块子类名称(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(谷歌Pixel 7 Pro)上测试。*
  • 测试应用程序的主页快捷方式及示例代码

  • 应用程序已启动,显示无线调试设置页面

  • 在最近的应用程序列表中,它显示为作为应用程序内的子活动运行

相关问题