by Anonymous » Yesterday, 04:35
Ich habe einen Accessility -Service, der gleich nach der Anforderung der Berechtigung gut funktioniert. />isServiceReallyRunning() = true
However, after I close the app completely and reopen it, the state is inconsistent:
isAccessibilityServiceEnabled() = true (permission toggle is still ON in system settings)
isServiceReallyRunning() = false
OnserviceConnected () wird nie wieder aufgerufen. < /p>
Der Dienst beginnt nur wieder, wenn ich die Barrierefreiheit in den Systemeinstellungen manuell umschaltete.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>
Überprüfen Sie, ob in Einstellungen aktiviert ist: < /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>
Überprüfen Sie, ob Sie wirklich ausgeführt werden: < /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>
Frage < /p>
Ist dies eine bekannte Änderung /Einschränkung in Android 15, dass Accessilityservice nicht automatisch wieder angeschlossen wird, nachdem der App -Prozess getötet wurde, und wiedereröffnet wird, obwohl die Erlaubnis umschaltet? ist erneut gebunden, ohne dass der Benutzer die Zugänglichkeit aus/ein manuell umschalten muss?>
Ich habe einen Accessility -Service, der gleich nach der Anforderung der Berechtigung gut funktioniert. />isServiceReallyRunning() = true
However, after I close the app completely and reopen it, the state is inconsistent:
isAccessibilityServiceEnabled() = true (permission toggle is still ON in system settings)
isServiceReallyRunning() = false
OnserviceConnected () wird nie wieder aufgerufen. < /p>
Der Dienst beginnt nur wieder, wenn ich die Barrierefreiheit in den Systemeinstellungen manuell umschaltete.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>
Überprüfen Sie, ob in Einstellungen aktiviert ist: < /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>
Überprüfen Sie, ob Sie wirklich ausgeführt werden: < /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>
Frage < /p>
Ist dies eine bekannte Änderung /Einschränkung in Android 15, dass Accessilityservice nicht automatisch wieder angeschlossen wird, nachdem der App -Prozess getötet wurde, und wiedereröffnet wird, obwohl die Erlaubnis umschaltet? ist erneut gebunden, ohne dass der Benutzer die Zugänglichkeit aus/ein manuell umschalten muss?>