2010-08-11 62 views
8

是否可以在我的应用内以编程方式启用USB调试(在settings/applications/development下)?以编程方式从应用内启用USB调试(在settings/applications/development下)

我在看Permission.WRITE_SETTINGShttp://developer.android.com/reference/android/provider/Settings.System.html, 但我找不到任何合适的东西。

+0

简单的好奇心:为什么你想在应用程序中这样做,因为连接到计算机时需要驱动程序? – Sephy 2010-08-11 12:53:56

+0

这不是问题。我正在写一个将在预定义的计算机上运行的同步应用程序(java webstart)。用户应能够同步电话,但是当我将设备交给他们时,它处于非调试模式。当用户想要同步时,应用程序应启用/禁用调试模式,因为他们的用户永远不会退出我的应用程序。 我的应用程序在启动时启动,默认设置为默认的家庭意图。 (背景:我使用设备捆绑应用程序,然后将其出租给用户)。但'同步站'将被预先配置并且已经安装了JRE,设备驱动程序等。 – 2010-08-11 13:07:06

+0

...加上我想从同步程序调用adb ...这就是为什么简单的USB安装是不够的(或需要额外的解决方法) – 2010-08-11 13:29:47

回答

11

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

这就是说,它是可能通过执行以下终端命令来启用ADB:

setprop persist.service.adb.enable 1 
start adbd 

This blog post给出如何通过su与已上报权限执行这些命令一个很好的例子。

3

这行代码可以帮助:

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

,你需要这个权限:

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

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

这意味着您的应用必须是系统应用