¿Podemos habilitar / deshabilitar programaticamente la depuración de USB en dispositivos Android?

¿Hay alguna forma de activar o desactivar la depuración USB mediante programación en dispositivos Android?

En un dispositivo normal, con una aplicación regular, no se puede.

Necesitas un dispositivo con raíz, con una aplicación en / system / app, entonces puedes.

De todos modos, usted no debe configurar tal cosa por ti mismo, el usuario debe estar en pleno control en tal caso.

Esto no es posible en android porque para eso tienes que acceder a Setting.System . Para obtener más información echa un vistazo aquí: ¿Cómo puedo desactivar la depuración de Android USB mediante programación

No es posible sin usar su propio firmware personalizado que otorga acceso a la configuración de seguridad. Vea el hilo aquí: http://groups.google.com/group/android-developers/browse_frm/thread/953c6f0eb0fa9bed#

La depuración de usb es otro nombre para el Debug Bridge de Android (ADB). El artículo que buscas está aquí

http://developer.android.com/reference/android/provider/Settings.Secure.html#ADB_ENABLED

Hola, este es mi primer post en aquí, y normalmente no me molestaría, pero veo que nadie quería darle la respuesta a pesar de que hay varias maneras de hacerlo. Esto es todo de mi aplicación, estoy "idone" en xda-dev btw. También parte de este código puede ser Samsung MSMxxxx específicos

Si usted tiene raíz usted puede de hecho. Y aquí hay 3 maneras de hacerlo a pesar de que otras personas digan lo contrario Método 1 (difundir código secreto) Método 2 (conjunto sys.usb.config) Método 3 (establecer valores globales adb_enabled 1)

 public String[] SET_DM_PORT_STATUS_LIST = new String[9];{ SET_DM_PORT_STATUS_LIST[0] = "setMTP"; SET_DM_PORT_STATUS_LIST[1] = "setMTPADB"; SET_DM_PORT_STATUS_LIST[2] = "setPTP"; SET_DM_PORT_STATUS_LIST[3] = "setPTPADB"; SET_DM_PORT_STATUS_LIST[4] = "setRNDISDMMODEM"; SET_DM_PORT_STATUS_LIST[5] = "setRMNETDMMODEM"; SET_DM_PORT_STATUS_LIST[6] = "setDMMODEMADB"; SET_DM_PORT_STATUS_LIST[7] = "setMASSSTORAGE"; SET_DM_PORT_STATUS_LIST[8] = "setMASSSTORAGEADB";} public String[] SET_DM_PORT_CONFIG_LIST = new String[9];{ SET_DM_PORT_CONFIG_LIST[0] = "mtp"; SET_DM_PORT_CONFIG_LIST[1] = "mtp,adb"; SET_DM_PORT_CONFIG_LIST[2] = "ptp"; SET_DM_PORT_CONFIG_LIST[3] = "ptp,adb"; SET_DM_PORT_CONFIG_LIST[4] = "rndis,acm,diag"; SET_DM_PORT_CONFIG_LIST[5] = "rmnet,acm,diag"; SET_DM_PORT_CONFIG_LIST[6] = "diag,acm,adb"; SET_DM_PORT_CONFIG_LIST[7] = "mass_storage"; SET_DM_PORT_CONFIG_LIST[8] = "mass_storage,adb";} Process su = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); outputStream.writeBytes("am broadcast -a android.provider.Telephony.SECRET_CODE -d android_secret_code://" + SET_DM_PORT_STATUS_LIST[paramInt]+"\n"); outputStream.writeBytes("setprop sys.usb.config " + SET_DM_PORT_CONFIG_LIST[paramInt]+"\n"); if(SET_DM_PORT_STATUS_LIST[paramInt].contains("adb")){ outputStream.writeBytes("settings put global adb_enabled 1\n"); } 

Estoy en el proceso de invertir IOTHIDDENMENU.apk y recrear sus métodos, pero sin la api interna y oculta que utiliza.

Gran respuesta: https://stackoverflow.com/a/17029123/1136074

Fundamentalmente su:

 android.os.Debug.waitForDebugger(); also you can use the following to determine if the debugger is connected: android.os.Debug.isDebuggerConnected(); //Determine if a debugger is currently att 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.