Mat*_*adt 9 permissions android android-manifest
是否可以在我的应用程序中以编程方式启用USB调试(在设置/应用程序/开发下)?
我正在查看Permission.WRITE_SETTINGS和
http://developer.android.com/reference/android/provider/Settings.System.html,但我找不到合适的东西.
Pau*_*sma 13
您需要root权限才能从应用程序执行此操作.
这就是说,它是可以通过执行以下终端命令来启用ADB:
setprop persist.service.adb.enable 1
start adbd
Run Code Online (Sandbox Code Playgroud)
此博客文章提供了一个很好的示例,说明如何通过升级权限执行这些命令su.
第一:您的应用必须是系统应用
这行代码可能会有所帮助:
Settings.Global.putInt(getContentResolver(), Global.ADB_ENABLED, 1);
并且您需要此权限:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
但是在清单中添加此权限后,您会收到此错误: 权限仅授予系统应用程序
这意味着您的应用程序必须是系统应用程序。
不使用您自己的自定义固件来授予对安全设置的访问权限,这是不可能的。在此处查看主题:http : //groups.google.com/group/android-developers/browse_frm/thread/953c6f0eb0fa9bed#
小智 5
您可以通过在清单中请求 WRITE_SECURE_SETTINGS 并通过 adb shell 授予它来以编程方式启用 adb:
adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
Run Code Online (Sandbox Code Playgroud)
然后您可以通过调用在 API 17 及更高版本上启用 adb:
Settings.Global.putString(mContext.getContentResolver, Settings.Global.ADB_ENABLED,"1");
Run Code Online (Sandbox Code Playgroud)
对于 API 16 到 API 3 调用:
Settings.Secure.putString(mContext.getContentResolver, Settings.Secure.ADB_ENABLED,"1");
Run Code Online (Sandbox Code Playgroud)
要禁用 adb,在命令中将“1”替换为“0”
| 归档时间: |
|
| 查看次数: |
10283 次 |
| 最近记录: |