現在、Android Support Package v4 Rev 10のNotificationCompat機能を調べています。ドキュメントには、「setContentText()」が通知の2行目を示していると記載されています。これは、API8からAPI15までに当てはまります。ただし、API 16でこのメソッドを使用しようとすると、通知で2行目が失われます。タイトルだけが表示され、2行目は表示されません。複数行を追加しても問題ありません('addline()'を使用)。
使用したNotificationCompat.Builderのコードは次のとおりです。
private NotificationCompat.Builder buildNormal(CharSequence pTitle) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(
getSherlockActivity());
builder.setAutoCancel(true).setDefaults(Notification.DEFAULT_ALL);
// set the shown date
builder.setWhen(System.currentTimeMillis());
// the title of the notification
builder.setContentTitle(pTitle);
// set the text for pre API 16 devices
builder.setContentText(pTitle);
// set the action for clicking the notification
builder.setContentIntent(buildPendingIntent(Settings.ACTION_SECURITY_SETTINGS));
// set the notifications icon
builder.setSmallIcon(android.R.drawable.stat_sys_download_done);
// set the small ticker text which runs in the tray for a few seconds
builder.setTicker("This is your ticker text.");
// set the priority for API 16 devices
builder.setPriority(Notification.PRIORITY_DEFAULT);
return builder;
}
また、複数の行を追加して通知を表示する場合は、次のコードを使用します。
NotificationCompat.Builder normal = buildNormal("This is an Expanded Layout Notification.");
NotificationCompat.InboxStyle big = new NotificationCompat.InboxStyle(
normal);
// summary is below the action
big.setSummaryText("this is the summary text");
// Lines are above the action and below the title
big.addLine("This is the first line").addLine("The second line")
.addLine("The third line").addLine("The fourth line");
NotificationManager manager = getNotificationManager(normal);
manager.notify(Constants.NOTIFY_ID, big.build());
これはJellyBeanの必要な機能ですか、setContentTextは無視されますか、それとも何かが足りませんか?コードはすべてのバージョンでエラーなしで実行されますが、ICS以前で使用したものと同じコードで2行目を追加したいと思います。
また、2つのスクリーンショットを追加しました。1つ目はICS4.0.3Huawei MediaPadからのもので、2つ目は4.1.1を搭載したGalaxyNexusからのものです。1から2行目は、簡単にするために通知タイトルと同じ文字列です。2では表示されません。
よろしくお願いします!