3

我正在使用这些权限并从大约 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" />

阅读无障碍服务中的事件:

@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);
    ...
}
4

1 回答 1

0

我建议重新考虑您对电池消耗的研究。不要说:

我的服务消耗了多少总电池电量?

而是认为:

我的服务每分钟消耗多少电池?

请记住,您的服务在您的应用程序之上保持活跃。它不断地运行。因此,预计您的无障碍服务将比其他应用程序消耗更多的电池。

话虽如此,您提供的信息没有帮助。这些都不是罪魁祸首。基本配置将对电池消耗产生极小的影响,并且只有在应用程序的性质发生变化时才能更改(您希望它做其他事情)。不,没有金块配置机制来节省电池。这是一个错误的问题。您想问的问题类型是:

我的应用程序使用了多少数据,我可以等到它连接到 Wi-Fi 吗?我是否做了很多冗长的计算,可能会被保存起来并一次性完成?我的服务是否会导致屏幕显示时间过长?

除此之外,无障碍服务的本质就是比其他类型的应用程序消耗更多的电池,对此您无能为力。

于 2016-02-08T15:35:31.050 回答