web-dev-qa-db-ja.com

Android 5.1プッシュ通知アイコンが空白です

プッシュ通知にParseを使用する場合、アプリは常にアプリケーションのランチャーアイコンを表示していました。最新のAndroid 5.1バージョンでは、アイコンは空白(白い四角)で表示されます。

メタデータにアイコンを設定してみました:

<meta-data Android:name="com.parse.Push.notification_icon" Android:resource="@drawable/noti_icon"/>

質問に基づく ここ

しかし、何も機能していないようです。何か案は?

15
Shahal Hazan

Android Lollipop5.0以降では透明な白いアイコンを使用する必要があります。 ParsePushBroadcastReceiverクラスを拡張し、2つのメソッドをオーバーライドして、通知アイコンをこれらのAndroid APIと互換性のあるものにすることができます。

    @Override
protected int getSmallIconId(Context context, Intent intent) {
    return R.drawable.your_notifiation_icon;
}

@Override
protected Bitmap getLargeIcon(Context context, Intent intent) {
    return BitmapFactory.decodeResource(context.getResources(), R.drawable.your_notifiation_icon);
}

Lollipopおよび以前のAPIをサポートするようにコードをカスタマイズすることを忘れないでください。

        if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.Lollipop) {
        return BitmapFactory.decodeResource(context.getResources(), R.drawable.your_notifiation_icon_Lollipop);
    }
    else{
        return BitmapFactory.decodeResource(context.getResources(), R.drawable.your_notifiation_icon);
    }
12
Pelanes

解析やプッシュのニティフィケーションとは関係ありませんが、Android 5.0が通知アイコンを処理する方法です。詳細についてはこの関連する質問を参照してください: 通知バーアイコンはAndroid 5ロリポップ

2
Muzikant

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

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                .setSmallIcon(R.drawable.ic_launcher)
                .setLargeIcon(largeIcon)
                .setContentText(data)
                .setContentTitle("Notification from Parse")
                .setContentIntent(pendingIntent);
0
Jignesh Goyani

@Pelanesには正解がありますが(受け入れられるべきです)、これが私がしたことです。 getSmallIconIdのドキュメントを解析 は次のように述べていることに注意してください。

Retrieves the small icon to be used in a Notification. The default implementation uses the icon specified by com.parse.Push.notification_icon meta-data in your AndroidManifest.xml with a fallback to the launcher icon for this package. To conform to Android style guides, it is highly recommended that developers specify an explicit Push icon.

したがって、getSmallIconId()メソッドとgetLargeIcon()メソッドをオーバーライドする必要はまったくありません。

この問題を解決するために私がしたことは、アイコンのコピーを作成し、アイコンに透明な「穴」を開け、マニフェストのcom.parse.Push.notification_iconメタデータをこの新しいアイコンを指すように設定することでした。

Android 5.0の場合、他の人が言及しているように、通知アイコンは白で透明である必要があります。したがって、個別のアイコンを作成する必要があります。マニフェストに1行、新しい描画可能ファイルを1つ作成します。必要なすべて。

0
h_k