我正在Android中开发一个辅助功能服务。 我想在用户关闭辅助功能服务时禁用某些功能,但我不确定如何检测到它。
我认为当用户将其关闭时,它会调用onDestroy()
,但显然,它没有被调用。
有什么方法可以知道用户何时切换无障碍服务? 或者是否有一个函数在用户切换时被调用?
(以防万一,我正在为Android服装开发。)
非常感谢!! 我感谢您的帮助! :)
答案 0 :(得分:0)
我不知道任何通知应用程序有关辅助服务状态更改的事件,广播或回调。我能想到的最好的事情是偶尔手动检查服务状态:
AccessibilityManager am = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
boolean isAccessibilityEnabled = am.isEnabled();
答案 1 :(得分:0)
interface AccessibilityManager.AccessibilityStateChangeListener
系统辅助功能状态的侦听器。要侦听设备上辅助功能状态的更改,请实现此接口并通过调用
addAccessibilityStateChangeListener
将其注册到系统。
示例:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
AccessibilityManager am = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
am.addAccessibilityStateChangeListener(new AccessibilityManager.AccessibilityStateChangeListener() {
@Override
public void onAccessibilityStateChanged(boolean b) {
Log.d(TAG,"onAccessibilityStateChanged b=" + b);
updateServiceStatus(b);
}
});
updateServiceStatus(am.isEnabled());
}
programcreek.com上的更多java示例。