Условие: Есть приложение которое, в определённый момент, должно пробуждать устройство (экран устройства должен включится) и показывать уведомление. Работа осуществляется через BroadcastReceiver.
override fun onReceive(context: Context, intent: Intent)
{
//Будим девай
wakeDevice(context)
//Вызываем функцию показа уведомления
makeBarNotification(context)
}
Всё, что касается пробуждения устройства выведено в отдельную функцию. Код ниже:
private fun wakeDevice(context: Context)
{
//Создаём Power manager
val powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager
//Создаём WakeLock
val myWakeLock = powerManager.newWakeLock(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, "MyApp:NotificationWakelockTag")
//Указываем длительность работы (В данном случае 5 секунд)
myWakeLock.acquire(5 * 1000L)
//Запускаем WakeLock
myWakeLock.release()
}
В manifest'e прописал строчку: <uses-permission android:name="android.permission.WAKE_LOCK" />
Проблема: Устройство не пробуждается и вылетает ошибка: "java.lang.IllegalArgumentException: Must specify a valid wake lock level.
"
указывающая на строчку, где я создаю WakeLock (val myWakeLock = ...
)
Предположение: Вероятно проблема в WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
. Этот код рекомендуют использовать взамен PowerManager.SCREEN_BRIGHT_WAKE_LOCK
вот тут: источник
Вопрос: Как тогда разбудить устройство в ВroadcastReceiver'e если код PowerManager.SCREEN_BRIGHT_WAKE_LOCK
- "deprecated", а код WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
приводит к ошибке.
Вы должны использовать один из вариантов при вызове newWakeLock
PARTIAL_WAKE_LOCK
FULL_WAKE_LOCK
SCREEN_DIM_WAKE_LOCK
SCREEN_BRIGHT_WAKE_LOCK
Ресурс: https://stackoverflow.com/questions/15555630/specify-valid-wake-lock-level
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Здравствуйте столкнулся с проблемой: нужно получить SHA-1 APK-файла заданного приложения, я могу получить пакет, версию, имя, но вообще не могу...
у меня есть 2 текста которые сравниваются, и если один не сравнивается с другим, нужно вывести тот КУСОК ТЕКСТА, который не сравниваетсяНапример...