6

ここに記載されているように Android の Big Text 通知を機能させるのに問題があります: NotificationCompat.BigTextStyle。通知を表示するために使用しているコードは次のとおりです。コンソールに従来のコンテンツ テキストとタイトルとして表示できるため、すべてのデータが正しく返されていることがわかります。私は何か間違ったことをしていますか?bigTestStyle を別の場所でも定義する必要がありますか? うまくいけば、あなたの 1 人が以前にこれを行ったことがあり、何が欠けている可能性があるかを知っています。ありがとう。

ご覧のとおり、大きなテキスト メッセージ テキストが表示されていません

私のコード:

    NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
    bigTextStyle.bigText(extras.getString("message"));
    NotificationCompat.Builder bigTextNotification = new NotificationCompat.Builder(context)
            .setContentTitle("My App")
            .setContentIntent(pendingIntent)
            .setContentText("Message:")
            .setSound(soundUri)
            .setTicker(extras.getString("message"))
            .setWhen(System.currentTimeMillis())
            .setSmallIcon(R.drawable.splash)
            .setAutoCancel(true)
            .setVibrate(new long[] { 0, 100, 200, 300 })
            .setStyle(bigTextStyle);
    final int notificationId = (int) (System.currentTimeMillis() / 1000L);
    NotificationManager thisone = (NotificationManager) getApplicationContext()
            .getSystemService(Context.NOTIFICATION_SERVICE);

    thisone.notify(notificationId, bigTextNotification.build());
4

1 に答える 1

4

NotificationCompat.BigTextStyleのドキュメントから:

多くのテキストを含む大きな形式の通知を生成するためのヘルパー クラス。 プラットフォームが大きな形式の通知を提供しない場合、このメソッドは効果がありません。ユーザーには常に通常の通知ビューが表示されます。

プラットフォームが大きな形式の通知をサポートしていない可能性があります。

編集 :

一方、問題がここにある可能性があります:

NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
bigTextStyle.bigText(extras.getString("message"));

の戻り値を使用していませんbigText

に変更してみてください:

NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
bigTextStyle  = bigTextStyle.bigText(extras.getString("message"));

または :

NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle().bigText(extras.getString("message"));

EDIT2:

古い Android バージョンの Costom 通知レイアウト:

protected void onMessage(Context context, Intent intent) {
    // Extract the payload from the message
    Bundle extras = intent.getExtras();
    if (extras != null) {
        String message = (String) extras.get("message");
        String title = (String) extras.get("title");                

        // add a notification to status bar
        NotificationManager mManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        Intent myIntent = new Intent(this,MyActivity.class);
        Notification notification = new Notification(R.drawable.notification_image, title, System.currentTimeMillis());
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
        contentView.setImageViewResource(R.id.image, R.drawable.notification_image);
        contentView.setTextViewText(R.id.title, title);
        contentView.setTextViewText(R.id.text, message);
        notification.contentView = contentView;
        notification.contentIntent = PendingIntent.getActivity(this.getBaseContext(), 0, myIntent, PendingIntent.FLAG_CANCEL_CURRENT);
        mManager.notify(0, notification);
        PowerManager pm = (PowerManager) 
        context.getSystemService(Context.POWER_SERVICE);
        WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
        wl.acquire(15000);
    }
}
于 2013-05-10T20:44:56.747 に答える