0

API 14 デバイスを使用しています。Gmail の通知に似た複数行の通知を開発しようとしています。スタック オーバーフローに関するいくつかの質問に答えましたが、API <16 の複数行の通知を受け取る解決策が見つかりませんでした。Big View 通知は OS 4.1+ でのみ機能することに注意してください。API 14 ではこれが必要です。

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    NotificationCompat.InboxStyle inboxStyle;
    inboxStyle = new NotificationCompat.InboxStyle();

    inboxStyle.addLine("Hello 1")
    .addLine("Hello 2")
    .addLine("Hello 3")
    .addLine("Hello 4");

    builder.setStyle(inboxStyle);
    builder.setTicker("HELLO WORLD MSG");
    builder.setSmallIcon(android.R.drawable.sym_def_app_icon);
    builder.setContentTitle("HELLO WORLD");
    builder.setPriority(NotificationCompat.PRIORITY_HIGH);
    notificationManager.notify(1000, builder.build());

これが私が得た結果です。 ここで文字列

「hello 1」、「hello 2」などの文字列が別々の行に表示されません。私を助けてください...

編集: 多くの間違った解決策が投稿されているため、複数行の通知が他の最新のモバイル (nexus) で正常に機能していることを指摘したいと思います。私が投稿したコードに欠陥やバグはありません。ただし、API 14 では機能しません。

4

2 に答える 2

0

次のコードを試してください

String[] names=new String[5];
        names[0]="Hello 1";
        names[1]="Hello 2";
        names[2]="Hello 3";
        names[3]="Hello 4";
        names[4]="Hello 5";
        inboxStyle.setBigContentTitle("Hello");
        for (String name:names)
        {
            inboxStyle.addLine(name);
        }

        builder.setStyle(inboxStyle);

または、これを参照することもできます

于 2016-02-24T10:34:28.277 に答える
0

まず、API14 は (廃止されているため) 推奨しませんが、それでも複数行の通知が必要な場合は、Notification.InboxStyle

Notification.InboxStyle inboxStyle = new Notification.InboxStyle();     
String[] events = new String[]{"h1","h2","h3","h4"};                //your lines
inboxStyle.setBigContentTitle("Event tracker details:");
for(int i=0; i < events.length; i++) {
   inboxStyle.addLine(events[i]);
}
Notification notification = new Notification.Builder(this)
        .setSmallIcon(R.drawable.ic_launcher)
        .setContentIntent(pintent)
        .setStyle(inboxStyle)           
        .build();

参照

于 2016-02-24T10:35:57.967 に答える