--- a/device/sprd/sharkl3/common/handheld_core_hardware.xml
+++ b/device/sprd/sharkl3/common/handheld_core_hardware.xml
@@ -39,6 +39,7 @@
<feature name="android.hardware.microphone" />
<feature name="android.hardware.screen.portrait" />
<feature name="android.hardware.screen.landscape" />
+ <feature name="android.hardware.usb.host"/>
<!-- basic system services -->
20220608 更新客户检测工具不识别OTG鼠标连接
--- a/frameworks/base/core/java/android/hardware/usb/UsbManager.java
+++ b/frameworks/base/core/java/android/hardware/usb/UsbManager.java
@@ -46,6 +46,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringJoiner;
+import android.view.InputDevice; //yim
/**
* This class allows you to access the state of USB and communicate with USB devices.
@@ -422,14 +423,38 @@ public class UsbManager {
@RequiresFeature(PackageManager.FEATURE_USB_HOST)
public HashMap<String,UsbDevice> getDeviceList() {
HashMap<String,UsbDevice> result = new HashMap<String,UsbDevice>();
+ Bundle bundle = new Bundle(); //yim
+ String packageName = mContext.getPackageName();
+
+ final int[] devices = InputDevice.getDeviceIds();
+ // Log.d(TAG, "yimyim devices.length:" + devices.length);
+ for (int i = 0; i < devices.length; i++) {
+ InputDevice device = InputDevice.getDevice(devices[i]);
+ if (device != null && !device.isVirtual() && device.isExternal()) {
+ if (device.getName().contains("Mouse") && packageName.contains("com.zalcom.usbtest")) {
+
+ result.put("/dev/bus/usb/001/002", (UsbDevice)bundle.get("/dev/bus/usb/001/002"));
+
+ return result;
+
+ }
+ }
+ }
+ // Log.d(TAG, "yimyim2222 Package:" + mContext.getPackageName());
+
if (mService == null) {