gpt4 book ai didi

java - Android 的 InputManager::registerInputDeviceListener 没有调用我的监听器

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:14 26 4
gpt4 key购买 nike

我正在尝试在添加/删除输入设备时收到通知,据我所知,这是 registerInputDeviceListener 应该做的......但我的监听器没有被调用!

这是我的代码 fragment :

InputManager im = (InputManager) getSystemService(Context.INPUT_SERVICE);
im.registerInputDeviceListener(new InputManager.InputDeviceListener() {
@Override
public void onInputDeviceAdded(int deviceId) {
Log.d("Input", "InputDeviceAdded: " + deviceId);
}

@Override
public void onInputDeviceRemoved(int deviceId) {
Log.d("Input", "InputDeviceRemoved: " + deviceId);
}

@Override
public void onInputDeviceChanged(int deviceId) {
Log.d("Input", "InputDeviceChanged: " + deviceId);
}
}, null);

这是我在拔下 USB 鼠标时在 logcat 中看到的内容:

01-15 19:19:04.025: INFO/EventHub(5935): Removing device '/dev/input/event0' due to inotify event
01-15 19:19:04.025: INFO/EventHub(5935): Removed device: path=/dev/input/event0 name=Primax USB OPTICAL MOUSE id=11 fd=245 classes=0x80000008
01-15 19:19:04.045: INFO/InputReader(5935): Device removed: id=11, name='Primax USB OPTICAL MOUSE', sources=0x00002002

但是我的监听器从来没有被调用过...

最佳答案

原来 InputManager 不会为设备更改注册自己,除非之前调用了 getInputDevice 或 getInputDeviceByDescriptor。

首先调用 getInputDevice(并忽略结果)会调用我的回调。

关于java - Android 的 InputManager::registerInputDeviceListener 没有调用我的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com