大多数android 版本,打开开发者选项后 usb默认配置为不进行数据传输,当选择为文件传输模式后,关闭开发者,usb会记住上一次选中的项,并不会因关闭开发者模式还原回不进行数据传输。
不会还原是正常现象,大多数android平台为了方便用户选择会记住选择的项,方便下一次连接,不用再打开开发者模式选择文件传输。
当然我们的手机或平板插usb就可以选择文件传输,不用打开开发者选项,但这里我们有一个前提是下拉菜单下的usb通知里的选项只保留了仅充电,所以就只能通过开发者选项选择。
去掉通知里usb其他选项只保留仅充电,系统默认是仅充电
packages/apps/Settings/src/com/sprd/settings/SprdUsbSettingsFragment.java
onActivityCreated方法下添加
getPreferenceScreen().removePreference(mMtp);
getPreferenceScreen().removePreference(mPtp);
getPreferenceScreen().removePreference(mCdrom);
getPreferenceScreen().removePreference(mMidi);
getPreferenceScreen().removePreference(mUms);
回到问题中当开发者选项关闭,不管usb配置选中的是什么,关闭后还原为不进行数据传输packages/apps/Settings/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
onSwitchChanged方法下添加
UsbManager mUsbManager = getContext().getSystemService(UsbManager.class);
final long FUNCTION_NONE = 0;
mUsbManager.setCurrentFunctions(FUNCTION_NONE);
mUsbManager.setScreenUnlockedFunctions(FUNCTION_NONE);