Этот вопрос связан с Android 6.0 Preview 3, который будет окончательно выпущен в конце этого месяца.
Я тестирую некоторые вещи в Android 6.0 в предварительном просмотре 3 из Google на Nexus 5 'hammerhead.
Новая функция - режим "доза" - что-то вроде глубокого спящего режима, когда сеть отключена, а телефон спит, только SMS, звонки или сообщения GCM с высоким приоритетом могут разбудить его. Но, как и WhatsApp - в режиме "доза" он получает сообщения через 2 часа и более, зависит от таймеров. Но есть список "не оптимизированных" приложений под названием "белый список", где можно вручную добавить приложение.
Хорошо, я хотел бы найти способ для добавления моего приложения программно без участия пользователя в список "Список списка белых списков", который существует в устройстве в настройках батареи.
Пытаясь использовать отражение, чтобы попасть в него, я обнаружил:
Внутри android.os.IDeviceIdleController существует метод:
public abstract void addPowerSaveWhitelistApp (String packageNameOfApp)
Но это интерфейс... Поэтому мы не можем создать экземпляр интерфейса.
Пока нет документации об этом интерфейсе или о методах или любом дереве наследования.
Может быть, у вас есть идея, где я должен искать возможность программно добавить туда свое приложение?
Существует также метод
public abstract boolean isPowerSaveWhitelistApp (String packageName)
Которое, я думаю, должно быть доступным каким-то образом?! чтобы проверить, существует ли приложение в белом списке, и, возможно, в самом конце, надеюсь, пользователь ASK добавит его в белый список.
Итак, мой вопрос: кто-нибудь из вас пытался сделать что-то с лучшим результатом? Потому что я застрял, и я думаю, что это тупик.
для получения дополнительной информации: https://newcircle.com/s/post/1739/2015/06/12/diving-into-android-m-doze