我正在开发一个Android应用,该应用可以修改按下的按键(VOLUME_UP,VOLUME_DOWN,KEYENTER)的操作
我有一个带有三个按钮的自拍杆控制器。我可以检测到按下了哪个按钮,并且可以做我想做的事而不会禁用按下的原始键事件
我需要禁用按下按钮的原始按键事件。
我的服务标签在Android Manifest中是这样的:
zoneId | chargeId
-------+---------
1 3
4 5
还有我的accesibility_service_config:
<service android:name=".CustomListener"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:label="@string/accessibility_service_label">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibility_service_config" />
</service>
我的onKeyevent函数是:
xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackAllMask"
android:accessibilityFlags="flagRequestFilterKeyEvents"
android:canRequestFilterKeyEvents="true"
android:canRetrieveWindowContent="true"
android:notificationTimeout="50"
android:packageNames="com.custom333.clevent"
使用此代码,我可以获得按下的键,但不能禁用原始键事件。
有人可以帮助我吗?
答案 0 :(得分:0)
我还是不能。
但是我找到了解决方案。
例如;
如果按键事件是“调高音量”,我可以使用AudioManager保持相同的音量。这正在处理对Volume Up原始键事件的拒绝。
此后,我可以做我想做的事。
答案 1 :(得分:0)
尝试返回“ true”而不是“ return super.onKeyEvent(event);” 如文档所述,onKeyEvent是一个过滤器,并接收事件的副本。因此,如果要使用该事件-如果仅“观察”,则应返回“ true”和“ false”。