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

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

你可能感兴趣的:(android开发)