Czy wymagany jest setContentIntent (PendingIntent) w NotificationCompat.Builder?

Dzwonienie:

public static void triggerTestNotification(Context ctx, String tag, int id) {
    Notification not = new NotificationCompat.Builder(ctx)
        .setContentTitle("Title").setContentText("Text")
        .setAutoCancel(true) // cancel on click
        .setSmallIcon(R.drawable.ic_launcher).build();
    NotificationManager notificationManager = (NotificationManager) ctx
        .getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(tag, id, not);
}

wonCreate() moich głównych wyników działalności:

11-17 15:58:46.198: E/AndroidRuntime(1507): FATAL EXCEPTION: main
11-17 15:58:46.198: E/AndroidRuntime(1507): java.lang.RuntimeException: Unable to start activity ComponentInfo{gr.uoa.di.monitoring.android/gr.uoa.di.monitoring.android.activities.MainActivity}: java.lang.IllegalArgumentException: contentIntent required: pkg=gr.uoa.di.monitoring.android id=0 notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x10)
//...
11-17 15:58:46.198: E/AndroidRuntime(1507): Caused by: java.lang.IllegalArgumentException: contentIntent required: pkg=gr.uoa.di.monitoring.android id=0 notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x10)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at android.os.Parcel.readException(Parcel.java:1326)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at android.os.Parcel.readException(Parcel.java:1276)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at android.app.NotificationManager.notify(NotificationManager.java:133)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at gr.uoa.di.monitoring.android.C.triggerTestNotification(C.java:200)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at gr.uoa.di.monitoring.android.activities.MainActivity.onCreate(MainActivity.java:44)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-17 15:58:46.198: E/AndroidRuntime(1507):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
11-17 15:58:46.198: E/AndroidRuntime(1507):     ... 11 more

Zwróć uwagę nacontentIntent wymagany.

Jednak doktorzynie mógł być bardziej jasny :

Wymagana zawartość powiadomienia

Obiekt powiadomienia musi zawierać następujące elementy:

Mała ikona ustawiona przez setSmallIcon ()

Tytuł, ustawiony przez setContentTitle ()

Tekst szczegółowy, ustawiony przez setContentText ()

Opcjonalna zawartość i ustawienia powiadomień

Wszystkie inne ustawienia powiadomień i zawartość są opcjonalne. Więcej informacji na ich temat można znaleźć w dokumentacji referencyjnej programu NotificationCompat.Builder.

Ta opinia znajduje odzwierciedlenie wróżny WIĘCodpowiedzi i skutkuje SOpytania (iinne jeden).

obejście:

final Intent emptyIntent = new Intent();
PendingIntent pi = PendingIntent.getActivity(ctx, NOT_USED,
    emptyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
//...
.setContentIntent(pi).build;

Ale czy to naprawdę potrzebne? Czy cała ta sytuacja jest innaBłąd dokumentów systemu Android ? Czy to zależy od interfejsu API?

Uwaga: mój docelowy zestaw SDK ma 17 i działa na telefonie 2.3.7

questionAnswers(1)

yourAnswerToTheQuestion