AccessilityService nicht wiederherstellen (OnserviceConnected nicht aufgerufen) nach dem Neustart von App auf Android 15Android

Forum für diejenigen, die für Android programmieren
Anonymous
 AccessilityService nicht wiederherstellen (OnserviceConnected nicht aufgerufen) nach dem Neustart von App auf Android 15

Post by Anonymous »

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?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post