代码之家  ›  专栏  ›  技术社区  ›  Mathias Conradt

从应用程序中以编程方式启用USB调试(在“设置/应用程序/开发”下)

  •  8
  • Mathias Conradt  · 技术社区  · 15 年前

    是否可以从“我的应用程序”中以编程方式启用USB调试(在“设置/应用程序/开发”下)?

    我在看 Permission.WRITE_SETTINGS http://developer.android.com/reference/android/provider/Settings.System.html , 但我找不到合适的。

    4 回复  |  直到 7 年前
        1
  •  11
  •   Paul Lammertsma    13 年前

    您需要根权限才能从应用程序执行此操作。

    也就是说 可以通过执行以下终端命令来启用ADB:

    setprop persist.service.adb.enable 1
    start adbd
    

    This blog post 给出了一个很好的示例,说明如何通过 su .

        2
  •  4
  •   Mathias Conradt    15 年前

    不使用您自己的自定义固件就不可能授予访问安全设置的权限。 请参阅此处的线程: http://groups.google.com/group/android-developers/browse_frm/thread/953c6f0eb0fa9bed#

        3
  •  4
  •   Milad Faridnia Alexey Zakharov    10 年前

    这一行代码可能有助于:

    Settings.Global.putInt(getContentResolver(), Global.ADB_ENABLED, 1);

    你需要这个许可:

    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

    但在清单中添加此权限后,您将得到此错误: 权限仅授予系统应用程序

    这意味着什么 您的应用程序必须是系统应用程序 .

        4
  •  2
  •   JustHobby    7 年前

    您可以通过在清单中请求“写入安全”设置并通过adb shell授予该设置,以编程方式启用adb:

    adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
    

    然后,您可以通过调用以下命令在API 17及以上版本上启用ADB:

    Settings.Global.putString(mContext.getContentResolver, Settings.Global.ADB_ENABLED,"1");
    

    对于API 16到API 3调用:

    Settings.Secure.putString(mContext.getContentResolver, Settings.Secure.ADB_ENABLED,"1");
    

    要禁用ADB,请在命令中将“1”替换为“0”

    推荐文章