Доступность службы обслуживания не повторно подключения (OnserviceConned не вызван) после перезапуска приложения на AndrAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Доступность службы обслуживания не повторно подключения (OnserviceConned не вызван) после перезапуска приложения на Andr

Сообщение Anonymous »

У меня есть доступность, которая работает нормально сразу после запроса разрешения. /> isserviceReallyrunning () = true < /p>
Однако после того, как я полностью закрыл приложение и повторно открыл его, состояние противоречиво: < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»