2016-08-24 9 views
8

私はFCMを使用しており、プッシュ通知をアプリに正常に送信できました。私はカスタム通知アイコンを使用したいが、それは常に白いアイコンを表示する。私はLollipopを実行しています。 documentationからFCM通知アイコンが使用されていません

それはオプション

アイコンを言い、文字列が通知アイコンを表示します。 Drawableリソースmyiconの値を myiconに設定します。

(正確な意味はわかりません)しかしここに私がしたことがあります。

  1. hereからアイコンを生成しました。それは白いテキストと透明な背景だけのアイコンを持っています。アイコンのサンプルスクリーンショットのPICは、私が

  2. enter image description here

  3. は、私は私のAndroidManifestを編集し、私はデバイス上でプロジェクトを実行しようとしたこの android:icon="@drawable/ic_stat_set" in <Application

  4. 、新しいアプリのアイコンを追加するresフォルダに追加enter image description here

  5. ですic_stat_setがアプリランチャーとして使用されています。

  6. コンソールからは通知を送信しましたが、受信しましたが、設定したアイコンではありません。

  7. 私もapi経由で送信しました。私は通知を受けましたが、私が設定したアイコンは受け取りませんでした。

    curl -X POST --header "Authorization: key=SERVERKEY" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"REGISTERATION-TOKEN-ID\",\"notification\":{\"body\":\"Yellow\" , \"icon\" : \"ic_stat_set\"} \"priority":\"10"}"

UPDATE:私の描画可能なアイコンファイルがhttps://drive.google.com/open?id=0B5Fi1l7EbQ_BOERUMzNuQy1OWXM

ている私は、コンソールでこれらのカスタムデータファイルに何かを置く必要がありますか?私のアイコン?私は何が欠けているのですか?背景png画像なし

おかげ

+0

をお勧めします**シルエットが** loliipop –

答えて

1

を私はそれがオフ

でここを見てみましょうステータスバーのためのあなたのアイコンのサイズかもしれないと思います。

https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html

アプリのアイコンがあなたの通知アイコンとは異なるべきです。

通知のアイコンパラメータは、ステータスバー用です。

マニフェストのアイコンのparamはアプリのアイコン(ショートカット)

のためである私はあなたが必要となります。このsample

+0

https://drive.google.com/open?id=0B5Fi1l7EbQ_BOERUMzNuQy1OWXMここにresフォルダアイコンファイルがあります。あなたが思うこと ? – cjmling

+0

@cjmlingランチャー用と通知用の2つのアイコンが必要です。彼らは異なるサイズです。これを修正し、私があなたに送ったものを読んで、それはうまくいくはずです。これらの変更で完璧に動作します。 –

+0

ありがとうございました。私は実際に記事を読んでいますが、何が間違っていたのかわかりませんでした。今私はサンプルアプリケーションとテストからdrawableアイコン/フォルダをコピーしました。素晴らしい仕事。私はそれが何であるか把握できなかったアイコンのサイズや要件に問題があったかもしれません。 – cjmling

0

Lollipopバージョンの使用アイコン。

NotificationCompat.Builder builder = new NotificationCompat.Builder(
      this).setSmallIcon(getNotificationIcon()) 
      .setContentTitle(title) 
      .setSound(defaultSoundUri) 
      .setDefaults(Notification.DEFAULT_ALL) 
      .setPriority(NotificationCompat.PRIORITY_HIGH) 
      .setStyle(new NotificationCompat.BigTextStyle().bigText(message)) 
      .setContentText(message).setAutoCancel(true) 
      .setContentIntent(contentIntent); 
    notificationManager.notify(NOTIFICATION_ID++, builder.build()); 


private int getNotificationIcon() { 
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP); 
    return useWhiteIcon ? R.drawable.logo : R.drawable.ic_launcher; 
} 
+0

のために、私は上記のアイコンのスクリーンショットは明らかにしそれは、バックグラウンドのないPNGであると伝えますか? – cjmling

+0

FCMとLollipopを使用しており、データフィールドはありません。このコードは決して実行されません。通知を表示するシステム。 –

0

あなたはシルエットアイコンを使用する必要があります。アイコンのシルエットアイコン(通知アイコン)を作成する必要があります。これによって白い背景の問題が解決されます。 それは私のために働いた。試してみてください。

+0

また、このリンクを勉強する必要があります: - > https://blog.clevertap.com/fixing-notification-icon-for-android-lollipop-and-above/ –

+0

私はブログに記載されているものと同じ透明なアイコンを持っていましたリンクuは供給されました。まだそこに問題があります。 :S – cjmling

+0

通知アイコンのシルエットアイコンを作成する必要があります。試してみてください 。それが動作する可能性があります。それは私のために働いています。 –

0

デフォルトでは、Lolipopのステータスバーのアイコンの色合いが白であるため、アンドロイドAPIは上位バージョンと古いバージョンのアイコンを設定する必要があります。あなたはこれを試すことができますハックなし:

int icon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? R.drawable.your_logo_for_Kitkat : R.mipmap.your_logo_for_Lolipop_and_uper_version; 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(icon) 
       .setContentTitle(remoteMessage.getData().get("title")) 
       .setContentText(remoteMessage.getData().get("shortDescription")) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setColor(Color.RED) 
       .setStyle(notiStyle) 
       .setContentIntent(pendingIntent); 
+0

FCMとLollipopを使用しており、データフィールドはありません。このコードは決して実行されません。通知を表示するシステム。 –

+0

また、彼の通知のアイコンやロゴを設定するシステム! –

関連する問題