Java-Android的InputManager :: registerInputDeviceListener没有调用我的侦听器

Java-Android的InputManager :: registerInputDeviceListener没有调用我的侦听器,第1张

概述我试图在添加/删除输入设备时得到通知,据我了解,那就是registerInputDeviceListener应该做的事……但未调用我的监听器!这是我的代码片段:InputManagerim=(InputManager)getSystemService(Context.INPUT_SERVICE);im.registerInputDeviceListener(newInputManager.InputDevi

我试图在添加/删除输入设备时得到通知,据我了解,那就是registerinputDeviceListener应该做的事……但未调用我的监听器!

这是我的代码片段:

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 event01-15 19:19:04.025: INFO/EventHub(5935): Removed device: path=/dev/input/event0 name=Primax USB OPTICAL MOUSE ID=11 fd=245 classes=0x8000000801-15 19:19:04.045: INFO/inputReader(5935): Device removed: ID=11, name='Primax USB OPTICAL MOUSE', sources=0x00002002

但是我的听众永远不会被打电话给…

解决方法:

事实证明,除非先前调用了getinputDevice或getinputDeviceByDescriptor,否则inputManager不会为设备更改进行注册.

首先调用getinputDevice(并忽略结果)会使我的回调函数被调用.

总结

以上是内存溢出为你收集整理的Java-Android的InputManager :: registerInputDeviceListener没有调用我的侦听器全部内容,希望文章能够帮你解决Java-Android的InputManager :: registerInputDeviceListener没有调用我的侦听器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1085956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存