检查otg设备是否是鼠标或键盘
首先需要继承InputManager.InputDeviceListener:
public class OTGTest extends BaseActivity implements InputManager.InputDeviceListener
private InputManager mIm;
mIm = (InputManager) getSystemService(INPUT_SERVICE);
mIm.registerInputDeviceListener(this, null);
if(mIm == null) {
mIm = (InputManager) getSystemService(INPUT_SERVICE);
mIm.registerInputDeviceListener(this, null);
}
final int[] devices = InputDevice.getDeviceIds();
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") || device.getName().contains("Keyboard")) {
Log.d(TAG, "device.getName()=" + device.getName() + " device.getId() " + device.getId() + " getDescriptor " + device.getDescriptor());
break;
}
}
}
实现父类的方法:
@Override
public void onInputDeviceAdded(int deviceId) {
Log.d("huasong", "onInputDeviceRemoved " + deviceId);
InputDevice device = InputDevice.getDevice(deviceId);
if (device != null && !device.isVirtual() && (device.isFullKeyboard() || device.isExternal())) {
if(device.getName().contains("Mouse") || device.getName().contains("Keyboard")) {
Log.d(TAG, "device.getName()=" + device.getName() + " device.getId() " + device.getId() + " getDescriptor " + device.getDescriptor());
}
}
}
@Override
public void onInputDeviceChanged(int deviceId) {
}
@Override
public void onInputDeviceRemoved(int deviceId) {
}