NotificationManager.notify () завершается с SecurityException - PullRequest
0 голосов
/ 18 июля 2011

Когда NotificationManager.notify() требуется разрешение WAKE_LOCK на Android 2.2?

Я получил следующую трассировку стека от одного пользователя:

java.lang.SecurityException: Neither user ***** nor current process has android.permission.WAKE_LOCK.
  at android.os.Parcel.readException(Parcel.java:1247)
  at android.os.Parcel.readException(Parcel.java:1235)
  at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274)
  at android.app.NotificationManager.notify(NotificationManager.java:118)
  at android.app.NotificationManager.notify(NotificationManager.java:94)
  ...

ОБНОВЛЕНИЕ Телефонный код в Scala:

  notification = new Notification(android.R.drawable.stat_notify_sync,
    "%s %s".format(statusTitle, finishedStatus), 0)
  notification.flags = Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL
  notification.setLatestEventInfo(SyncService.this, statusTitle, finishedStatus,
    PendingIntent.getActivity(SyncService.this, 0, new Intent(SyncService.this, classOf[MainActivity]), 0))
  notificationManager.notify(NOTIFICATION, notification)

Ответы [ 3 ]

0 голосов
/ 18 июля 2011

Похоже, вы пользуетесь услугой.Возможно, служба работает слишком долго, и телефон возвращается в спящий режим до того, как уведомление может быть отправлено.Я предполагаю, что вы используете AlarmManager, чтобы вывести телефон из спящего режима для проверки обновлений?Если это так, вам просто нужно объявить разрешение WAKE_LOCK следующим образом:

<uses-permission android:name="android.permission.WAKE_LOCK" />

Я сталкивался с этой проблемой раньше, особенно при обновлении из служб в Интернете.Единственное решение, которое я нашел, это объявить разрешение WAKE_LOCK.

0 голосов
/ 17 мая 2012

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

0 голосов
/ 18 июля 2011

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

Источник NotificationManagerService

Источник уведомленийPlayer

...