web-dev-qa-db-ja.com

オレオ通知バー丸いアイコン

Android Oreo(API 26)の通知バーの小さなアイコンを変更するにはどうすればよいですか。通知バーに丸い白いアイコンが表示されます。変更するにはどうすればよいですか?マニフェストファイルデフォルトの通知アイコンは以下のように設定されています。

<meta-data
     Android:name="com.google.firebase.messaging.default_notification_icon"
     Android:resource="@drawable/ic_status" />

下の画像を参照してください

Screenshot

6
Shanu

Firebase SDK11.8.0のバグAndroid 8.0(API 26)) があり、ステータスにアプリのランチャーアイコンの白いバージョンが表示されます通知アイコンの代わりにバー。

screenshot 1

一部の人々はそれを ApplicationクラスのgetResources() メソッドをオーバーライドすることによって修正しました。

私のために働いた別の方法は、 HTTP POST request を使用して通知を データメッセージ として送信することでした:

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
   "to": "/topics/test",
   "data": {
       "title": "Update",
       "body": "New feature available"
    }
 }

そして サブクラスFirebaseMessagingService プログラムで通知を表示するには:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Intent i = new Intent(context, HomeActivity.class);
        PendingIntent pi = PendingIntent.getActivity(this, 0, i, 
                                         PendingIntent.FLAG_ONE_SHOT);

        NotificationCompat.Builder builder = 
            new NotificationCompat.Builder(this, GENERAL_CHANNEL_ID)
                 .setSmallIcon(R.drawable.ic_stat_chameleon)
                 .setContentTitle(remoteMessage.getData().get("title"))
                 .setContentText(remoteMessage.getData().get("body"))
                 .setContentIntent(pi);

        NotificationManager manager = 
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.notify(0, builder.build());
    }
}

結局、Android 8.0:

screenshot 2

5
Josselin