4

BigTextStyle/InboxStyle 通知を実装しましたが、HTC One X AT&T (4.1.1) で JellyBean (Gingerbread、ICS などを意味します) の前に表示される通常の通知として表示されます。アクションボタンも表示されません。

エミュレーター (JellyBean 4.2) でコードをチェックしましたが、動作しています。

私のバージョンの HTC One X では、JellyBean の新しい通知システムが実装されていないようです。

HTC One X AT&T デバイス情報

Android Version - 4.1.1 
HTC Sense Version - 4+ 
Software number - 3.18.502.6 710RD 
HTC SDK API Level - 4.63 
HTC Extension version - HTCExtension_Sesnse45_2

ソースコード

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private void showNotificationJB(Reminder reminder, Intent intent) {

    Log.v(TAG, "Showing BigText Notification");

    Notification.Builder builder = new Notification.Builder(this);
    builder.setContentTitle("Ezeetrak Scheduler");

    AdditionalDataStore store = reminder.getStore(); 

    String passedBy = store.optString("passedBy");

    builder.setContentText("Recieved an Event by " + passedBy);
    builder.setTicker("Recieved an Event by " + passedBy);
    builder.setSmallIcon(R.drawable.ic_launcher);

    Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
    inboxStyle.addLine(Html.fromHtml("<b>Name: </b>" + reminder.getEventName()));
    inboxStyle.addLine(Html.fromHtml("<b>Date: </b>" + DateTimeHelper.DateFormat.format(reminder.getEventDate())));
    inboxStyle.addLine(Html.fromHtml("<b>Time: </b>" + reminder.getEventTimeFormatted()));
    inboxStyle.addLine(Html.fromHtml("<b>Sent By: </b>" + passedBy));
    inboxStyle.setBigContentTitle("Ezeetrak Scheduler");

    builder.setStyle(inboxStyle);

    PendingIntent acceptPendingIntent = buildPendingIntent(ReminderActivity.ACTION_ACCEPT, intent, 0);
    PendingIntent rejectPendingIntent = buildPendingIntent(ReminderActivity.ACTION_REJECT, intent, 1);

    builder.setContentIntent(buildPendingIntent(ReminderActivity.ACTION_VIEW, intent, 2));
    builder.addAction(R.drawable.ic_action_accept, "Accept", acceptPendingIntent);
    builder.addAction(R.drawable.ic_action_reject, "Reject", rejectPendingIntent);
    builder.setAutoCancel(false);

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    notificationManager.notify(REMINDER_SHARE_ACTION, builder.build());
}

私のデバイスで機能しない理由を知っている人はいますか?

4

2 に答える 2

9

Android 4.1 の BigTextStyle 通知を展開するには、2 本の指が必要です。

Android 4.2 では、1 本の指だけが必要です。参考までに動画をご覧ください。http://www.youtube.com/watch?v=a6dzMzklEd4

于 2013-10-02T10:24:52.397 に答える
1

NotificationCompat.Builderの代わりに使用してみてください。したがって、Notification.Builderコードを変更してください。それは機能するはずです。そして、この投稿に対する他の答えは重要です。

于 2014-08-04T21:19:45.617 に答える