【发布时间】:2022-04-19 14:45:38
【问题描述】:
我的 AccessibilityService 可以正常使用物理支持,回家。但是如果用户有 带有软导航键的设备(如 nexus 4)它不会返回键事件这是我的代码:我的目标是阻止返回和主页按钮操作,知道我该怎么做吗?
Accessibility_Service.java
public class Accessibility_Service extends AccessibilityService {
private SharedPreferences prefs;
private String TAG = "Accessibility_Service";
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d(TAG,"AccessibilityEvent: "+event.toString());
}
@Override
public void onInterrupt() {
Log.d(TAG,"onInterrupt: ");
}
@Override
protected boolean onKeyEvent(KeyEvent event) {
try {
Log.d(TAG,"key: "+event.getKeyCode());
if (prefs.getBoolean(MyStandout.IS_RUNNNING_PREF, false)) {
if (handerEvent(event)) {
return true;
}
}else {
Log.d(TAG,"standOutNotRuning");
}
} catch (Exception e) {
e.printStackTrace();
}
return super.onKeyEvent(event);
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
@Override
protected void onServiceConnected() {
prefs = getSharedPreferences(MyStandout.MY_PREFS_NAME, MODE_PRIVATE);
AccessibilityServiceInfo tempInfo = getServiceInfo();
tempInfo.flags |= AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS;
tempInfo.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
tempInfo.flags |= AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
setServiceInfo(tempInfo);
}
config.xml
<accessibility-service
android:accessibilityFlags="flagRequestFilterKeyEvents|flagIncludeNotImportantViews|flagRequestTouchExplorationMode"
android:description="@string/accessibility_service_description"
android:settingsActivity="com.example.ameerhamza.lockscreentouch.Accessibility_Service"
android:canRequestFilterKeyEvents="true"
xmlns:android="http://schemas.android.com/apk/res/android"
/>
清单
<service
android:name="com.example.ameerhamza.lockscreentouch.Accessibility_Service"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/serviceconfig" />
</service>
【问题讨论】:
-
对此的任何更新。我也卡住了
-
不,我只是检测用户是否有软按钮,然后我隐藏那个软按钮
-
你能指导我,如何隐藏软按钮?
-
到目前为止有什么解决方案吗?
标签: android accessibility accessibilityservice