我是android框架的新手。我正在使用USB设置。我想知道android中存储的USB设置在哪里。 我有以下问题: 当我将手机连接到计算机并从大容量存储器,MTP,PTP中选择一个选项时,如果我关闭然后打开设备,我的选择将被清除。我希望保留以前的选择。 我该怎么办.. ??
提前致谢...
编辑:我今天发现应该在/ data / system文件夹中创建usb_device_manager.xml文件,但在我的情况下,它不会生成。 我无法找到这背后的原因。 创建此文件的文件位于frameworks / base / services / java / com / android / server / usb /
等待肯定回复...
答案 0 :(得分:1)
根据http://developer.android.com/reference/android/hardware/usb/UsbManager.html 您无法找到用于获取此信息的开放API。 但是,从源代码中我们可以看到这两个函数:
/**
* 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/