Служба доступности расходует много батареи

Я использую эти разрешения и получаю контент из примерно 10 различных приложений. Есть ли лучший способ сделать это, чтобы потребление батареи было намного меньше?

<accessibility-service
android:description="@string/accessibility_service_description"
android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeWindowStateChanged"
android:accessibilityFeedbackType="feedbackGeneric"
android:notificationTimeout="100"
android:canRetrieveWindowContent="true"
xmlns:android="http://schemas.android.com/apk/res/android" />

Чтение событий в Accessibility Service:

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    final int eventType = event.getEventType();
    String eventText = null;
    switch(eventType) {
        case AccessibilityEvent.TYPE_VIEW_CLICKED:
            eventText = "Focused: ";
            break;
        case AccessibilityEvent.TYPE_VIEW_FOCUSED:
            eventText = "Focused: ";
            break;
    }

    eventText = eventText + event.getContentDescription();

    // Do something nifty with this text, like speak the composed string
    // back to the user.
    speakToUser(eventText);
    ...
}

1 ответ

Я бы посоветовал переосмыслить ваше исследование потребления батареи. Не говори:

Сколько всего батареи потребляет мой сервис?

Скорее подумайте:

Сколько батареи в минуту потребляет мой сервис?

Помните, что ваш сервис остается активным поверх ваших приложений. Он работает постоянно. Поэтому ожидается, что ваша служба доступности будет потреблять больше батареи, чем другие приложения.

Это, как говорится, информация, которую вы предоставили, не является полезной. Ни один из них не является виновником. Базовые конфигурации будут оказывать крайне минимальное влияние на потребление батареи и могут быть изменены только в том случае, если изменится характер ваших приложений (вы хотите, чтобы он делал что-то еще). Нет, нет механизма настройки золотого самородка для экономии батареи. Это неправильный вопрос. Типы вопросов, которые вы хотите задать:

Сколько данных использует мое приложение, и можно ли подождать, пока оно подключится к Wi-Fi? Я делаю много длинных вычислений, которые могут быть сохранены и сделаны все сразу? Мой сервис заставляет экран работать дольше, чем необходимо?

Помимо этого, сервисы специальных возможностей просто потребляют больше батареи, чем другие типы приложений, и с этим ничего не поделаешь.

Другие вопросы по тегам