身份證閱讀器Android開機(jī)后無法識(shí)別及USB彈窗請(qǐng)求權(quán)限問題解決方案
有部分安卓主板商主板沒有給USB權(quán)限或者沒有延時(shí)供電,會(huì)導(dǎo)致身份證閱讀器在Android系統(tǒng)開機(jī)后無法識(shí)別,需要重新拔插才能使用、USB彈窗請(qǐng)求訪問USB設(shè)備,以及device.getInterfaceCount() 為0的問題。
注意:以上問題僅限USB接口讀卡器會(huì)出現(xiàn),串口設(shè)備(TTL和RS232)不會(huì)有這種問題。
可以按以下修改步驟,要求安卓主板提供商最源碼做修改:
步驟一:
修改:frameworks\base\packages\SystemUI\src\com\android\systemui\usb\UsbPermissionActivity.java
注釋:
//setupAlert();
添加
mPermissionGranted = true;
finish();
步驟二:
修改:frameworks/base/services/usb/java/com/android/server/usb/UsbSettingsManager.java
public boolean hasPermission(UsbDevice device) {
synchronized (mLock) {
return true;
}
}
public boolean hasPermission(UsbAccessory accessory) {
synchronized (mLock) {
return true;
}
}
步驟三:
修改:rameworks/base/services/usb/java/com/android/server/usb/UsbHostManager.java
endUsbDeviceAdded()方法加入以下代碼
mNewDevice = null;
mNewConfigurations = null;
mNewInterfaces = null;
mNewEndpoints = null;
mNewConfiguration = null;
mNewInterface = null;
按以上1-3步驟修改安卓主板底層源碼,就不會(huì)出現(xiàn)開機(jī)后無法識(shí)別、USB彈窗請(qǐng)求權(quán)限,以及device.getInterfaceCount() 為0的問題。