2010-08-11 10 views
8

¿Es posible habilitar la depuración de USB (en configuraciones/aplicaciones/desarrollo) programáticamente desde mi aplicación?Habilite la depuración de USB (en configuraciones/aplicaciones/desarrollo) programáticamente desde dentro de una aplicación

estaba mirando Permission.WRITE_SETTINGS y http://developer.android.com/reference/android/provider/Settings.System.html, pero no pude encontrar nada apropiado.

+0

simple curiosidad: ¿Por qué le gustaría hacer eso en una aplicación ya que necesita un controlador cuando se conecta a una computadora? – Sephy

+0

eso no es un problema. Estoy escribiendo una aplicación de sincronización (java webstart) que se ejecutará en un conjunto predefinido de computadoras. los usuarios podrán sincronizar el teléfono, pero cuando les entrego los dispositivos, está en modo no depuración. Cuando los usuarios quieran sincronizar, la aplicación habilitará/deshabilitará el modo de depuración, ya que el usuario nunca saldrá de mi aplicación. Mi aplicación se inicia al arrancar y está configurada de manera predeterminada en el intento de inicio predeterminado. (fondo: estoy combinando la aplicación con un dispositivo, que luego alquilo al usuario). Pero las 'estaciones de sincronización' estarán preconfiguradas y ya tienen instalado JRE, controladores de dispositivos, etc. –

+0

... además, quiero llamar a adb desde el programa de sincronización ... que es por lo que el simple montaje de usb no es suficiente (o requeriría soluciones adicionales) –

Respuesta

11

Necesitará permisos de raíz para hacerlo desde una aplicación.

Dicho esto, es posible habilitar ADB ejecutando los siguientes comandos de terminal:

setprop persist.service.adb.enable 1 
start adbd 

This blog post da un excelente ejemplo de la forma de ejecutar estos comandos con permisos intensificado a través su.

3

Esta línea de código puede ayudar:

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

y que necesita este permiso:

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

pero después de la adición de este permiso en el manifiesto obtendrá este error: El permiso solo se concede a las aplicaciones del sistema

que significa su aplicación debe ser una aplicación de sistema.

Cuestiones relacionadas