Однако после того, как я полностью закрыл приложение и повторно открыл его, состояние противоречиво: < /p>
IsaccessibilityServiceEnabled () = true (разрешение все еще в настройках системы) < /p>
isserner issern /> onServiceConnected () никогда не вызывается снова < /p>
Служба снова начинает работать, если я вручную переключаю доступность и включенные в системные настройки.public class MyAccessibilityService extends AccessibilityService {
private static final String TAG = "AutoclickLog";
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event == null) return;
int eventType = event.getEventType();
String eventText = "";
switch (eventType) {
case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
eventText = "Window state changed: " + event.getClassName();
break;
case AccessibilityEvent.TYPE_VIEW_CLICKED:
eventText = "View clicked: " + event.getText();
break;
case AccessibilityEvent.TYPE_VIEW_FOCUSED:
eventText = "View focused: " + event.getText();
break;
}
Log.d(TAG, "onAccessibilityEvent triggered → " + eventText);
}
@Override
public void onInterrupt() {}
@Override
public boolean onUnbind(Intent intent) {
Log.d(TAG, "onUnbind MyAccessibilityService");
return super.onUnbind(intent);
}
@Override
protected void onServiceConnected() {
Log.d(TAG,"onServiceConnected");
super.onServiceConnected();
}
}
< /code>
Проверьте, если включено в настройках: < /p>
private boolean isAccessibilityServiceEnabled() {
String serviceName = getReactApplicationContext().getPackageName()
+ "/" + MyAccessibilityService.class.getName();
String enabledServices = Settings.Secure.getString(
getReactApplicationContext().getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES
);
Log.d(TAG, "Accessibility enabledServices: " + enabledServices);
return enabledServices != null && enabledServices.contains(serviceName);
}
< /code>
Проверьте, действительно ли запуск: < /p>
private boolean isServiceReallyRunning() {
AccessibilityManager am = (AccessibilityManager) getReactApplicationContext()
.getSystemService(Context.ACCESSIBILITY_SERVICE);
List enabledServices =
am.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
String serviceId = getReactApplicationContext().getPackageName()
+ "/" + MyAccessibilityService.class.getName();
for (AccessibilityServiceInfo service : enabledServices) {
if (service.getId().equals(serviceId)) {
return true;
}
}
return false;
}
< /code>
Вопрос < /p>
- Является ли это известное изменение /ограничение в Android 15, что доступность Speerner не восстанавливается автоматически после того, как процесс приложения погиб и повторно открывается, даже если разрешающий тутфорт все еще работает? Связан ли снова, не требуя, чтобы пользователь переключал доступ к доступности/вручную?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -after-app
Мобильная версия