1

私はアンドロイドフレームワークが初めてです。USB設定で作業しています。AndroidのUSB設定がどこに保存されているか知りたいです。次の問題があります: 電話をコンピューターに接続し、大容量ストレージ、MTP、PTP のいずれかのオプションを選択すると、デバイスのスイッチをオフにしてからオンにすると、選択がクリアされます。前の選択を保持したい。私は何をすべきか..??

前もって感謝します...

編集: 今日、usb_device_manager.xml ファイルを /data/system フォルダーに作成する必要があることを発見しましたが、私の場合は生成されません。この背後にある理由を見つけることができません。このファイルを作成するファイルは、frameworks/base/services/java/com/android/server/usb/ にあります。

肯定的な返事を待っています...

4

1 に答える 1

2

http://developer.android.com/reference/android/hardware/usb/UsbManager.htmlによると 、この情報を取得するためのオープン API が見つかりません。ただし、ソース コードから、次の 2 つの関数を確認できます。

/**
 * Name of the MTP USB function.
 * Used in extras for the {@link #ACTION_USB_STATE} broadcast
 *
 * {@hide}
 */
public static final String USB_FUNCTION_MTP = "mtp";

/**
 * Name of the PTP USB function.
 * Used in extras for the {@link #ACTION_USB_STATE} broadcast
 *
 * {@hide}
 */
public static final String USB_FUNCTION_PTP = "ptp";


 /**
     * Returns the current default USB function.
     *
     * @return name of the default function.
     *
     * {@hide}
     */
    public String getDefaultFunction() {
        String functions = SystemProperties.get("persist.sys.usb.config", "");
        int commaIndex = functions.indexOf(',');
        if (commaIndex > 0) {
            return functions.substring(0, commaIndex);
        } else {
            return functions;
        }
    }

    /**
     * Sets the current USB function.
     * If function is null, then the current function is set to the default function.
     *
     * @param function name of the USB function, or null to restore the default function
     * @param makeDefault true if the function should be set as the new default function
     *
     * {@hide}
     */
    public void setCurrentFunction(String function, boolean makeDefault) {
        try {
            mService.setCurrentFunction(function, makeDefault);
        } catch (RemoteException e) {
            Log.e(TAG, "RemoteException in setCurrentFunction", e);
        }
    }

非表示の API を使用することはお勧めしませんが、これで問題が解決する場合があります。非表示の API の使用方法を知りたい場合は、次のリンクを参照してください: http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/

于 2013-04-09T06:45:23.763 に答える