Android デバイスで USB デバッグをプログラムでオン/オフする方法はありますか?
5 に答える
こんにちは、これは私の最初の投稿です。通常は気にしませんが、複数の方法があるにもかかわらず、誰もあなたに答えたがっていないようです。これはすべて私のアプリからのものです。ところで、私は xda-dev で「idone」です。また、このコードの一部はおそらく Samsung MSMxxxx 固有のものです
あなたがルートを持っているなら、あなたは確かにできます。そして、他の人が別の言い方をしているにもかかわらず、これを行う3つの方法があります方法1(秘密のコードをブロードキャストする)方法2(sys.usb.configを設定する)方法3(設定グローバル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");
}
私は IOTHIDDENMENU.apk を元に戻し、そのメソッドを再作成していますが、それが使用する内部および非表示の API は使用していません。
通常のデバイスでは、通常のアプリではできません。
/system/app にアプリがある root 化されたデバイスが必要です。
とにかく、そのようなことを自分で構成するべきではありません。そのような場合、ユーザーは完全に制御する必要があります。
にアクセスする必要があるため、これはアンドロイドでは不可能ですSetting.System
。詳細については、こちらをご覧ください: How can I disable Android USB debugging programmatically
セキュリティ設定へのアクセスを許可する独自のカスタム ファームウェアを使用しないと、これは不可能です。ここのスレッドを参照してください: http://groups.google.com/group/android-developers/browse_frm/thread/953c6f0eb0fa9bed#
usb デバッグは、Android Debug Bridge (ADB) の別名です。お探しの商品はこちら
http://developer.android.com/reference/android/provider/Settings.Secure.html#ADB_ENABLED