android检查是否插入OTG鼠标或键盘代码

1,293 阅读1分钟

检查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) {
}