2010-08-11 60 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"/>

但在清單中添加此權限後,您會收到此錯誤: 權限僅授予系統應用程序

這意味着您的應用必須是系統應用