2010-08-11 4 views
8

Ist es möglich, USB-Debugging (unter Einstellungen/Anwendungen/Entwicklung) programmgesteuert über meine App zu aktivieren?USB-Debugging (unter Einstellungen/Anwendungen/Entwicklung) programmgesteuert aus einer App aktivieren

Ich schaute auf Permission.WRITE_SETTINGS und http://developer.android.com/reference/android/provider/Settings.System.html, , aber ich konnte nichts passendes finden.

+0

einfache Neugier: Warum möchten Sie das in einer App tun, wie Sie einen Treiber benötigen, wenn Sie eine Verbindung zu einem Computer herstellen? – Sephy

+0

das ist kein Problem. Ich schreibe eine Sync-App (Java Webstart), die auf einer vordefinierten Gruppe von Computern ausgeführt wird. Benutzer sollten in der Lage sein, das Telefon zu synchronisieren, aber wenn ich ihnen die Geräte aushändige, befindet es sich im Nicht-Debug-Modus. Wenn die Benutzer synchronisieren möchten, aktiviert/deaktiviert die App den Debug-Modus, da der Benutzer nie meine App beenden wird. Meine App startet beim Booten und ist standardmäßig auf die Standard-Home-Absicht eingestellt. (Hintergrund: Ich bündle die App mit einem Gerät, das ich dann an den Nutzer vermiete). Die 'Sync-Stationen' sind jedoch vorkonfiguriert und JRE, Gerätetreiber usw. sind bereits installiert. –

+0

... plus Ich möchte adb aus dem Sync-Programm aufrufen ... deshalb ist eine einfache USB-Installation nicht genug (oder würde zusätzliche Workarounds erfordern) –

Antwort

11

Sie benötigen root-Berechtigungen dazu von einer App aus.

Das heißt, es möglich ist ADB zu ermöglichen, indem die folgenden Terminal-Befehle ausführen:

setprop persist.service.adb.enable 1 
start adbd 

This blog post ein ausgezeichnetes Beispiel dafür, wie gibt diese Befehle mit erweiterten Berechtigungen über su auszuführen.

3

kann diese Codezeile helfen:

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

und Sie müssen diese Berechtigung:

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

aber nach dieser Berechtigung in einem offenkundigen Hinzufügen werden Sie diese Fehlermeldung erhalten: Die Berechtigung wird nur System-Apps erteilt

Das bedeutet Ihre App muss eine System-App sein.