2017-12-29 3 views
-1

Ich versuche, ein PendingIntent mit PendindIntent.getBroadcast() zu schaffen, aber es gibt immer null trotz der docs cleary besagt:PendingIntent.getBroadcast() gibt immer null mit FLAG_UPDATE_CURRENT

@return Gibt eine bestehende oder neue PendingIntent passende Gibt die gegeben Parameter. Kann nur dann null zurückgeben, wenn {@link #FLAG_NO_CREATE} angegeben wurde.

Ich verwende nicht FLAG_NO_CREATE, also sollte es nie null zurückgeben.

private fun createAlertPendingIntent(
    context: Context, 
    notification: Notification, 
    intentId: Int) : PendingIntent { 
    val notificationIntent = Intent(context, NotificationPublisher::class.java) 
    notificationIntent.putExtra(KEY_NOTIFICATION, notification) 

    val pi = PendingIntent.getBroadcast(
     context, 
     intentId, 
     notificationIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT) 

    return pi // IS NULL 
} 
+0

Sind Sie sicher, dass NotificationPublisher ein gültiger BroadcastReceiver ist, der in Ihrem Manifest korrekt definiert ist? – elmorabea

Antwort

0

Offenbar PendingIntent.getBroadcast() kann ohne Warnungen oder Fehler null zurück, wenn etwas nicht stimmt mit der Absicht, ist man hineingeben.

In meinem Fall hatte die notificationIntent eine Notification darin, wo die in .setLargeIcon(drawable) verwendete Zeichengröße nicht korrekt oder für alle Bildschirmdichten verfügbar war. Das Hinzufügen zu den Ordnern mdpi, hdpi, xhdpi, etc löste es für mich.