プッシュ通知の左側に表示される通知アイコンの背景色を変更する場合は、アイコンのカスタマイズが必要になります。
プッシュ通知アイコン(通知の左側)
プッシュ通知アイコンの背景色を変更する場合は、以下の点をご確認ください。
通知チャネルのカスタマイズ
通知アイコンのカスタマイズを行うためには、お客様ご自身で通知チャネルを作成・変更し、登録が必要です。
通知アイコンの指定方法や通知チャネルの作成・変更方法については、
APPBOX Developers > Android SDK組み込みガイド > 各種SDK組み込みガイド > マーケティングSDK > 各種機能 >「通知カスタマイズ」をご確認ください。
リソースの準備
プッシュ通知アイコンとして使用する画像ファイルを準備します。 アイコンは、resフォルダ配下の各サイズに対応したdrawableフォルダに配置します。 アイコンの画像を適したdrawableフォルダに配置後、AppboxCallback.kt内のbuilder.setSmallIconにて該当アイコンを指定します。
【フォルダとアイコンのサイズ】
| フォルダ名 | 画像サイズ |
|---|---|
drawable-mdpi |
48x48 |
drawable-hdpi |
72x72 |
drawable-xhdpi |
96x96 |
drawable-xxhdpi |
144x144 |
drawable-xxxhdpi |
192x192 |
アイコン作成の注意点
一般的にプッシュ通知アイコンは、白と透過の2つの組み合わせで作成するため、アイコンの透過部分に、背景色(端末のテーマカラー)が反映されます。
アイコンの形を表現したい箇所は白で塗りつぶし、背景色を適用したい箇所は透過にしてください。
例)
ソースの変更
プッシュ通知のカスタマイズを有効にするため、以下のファイルを編集してください。
-
appbox_marketing_values.xml
プッシュ通知のカスタマイズを有効にする設定を追加します。
<bool name="appbox_notification_customize_enabled">true</bool>
-
AppboxCallback.ktAppboxCallback.ktに配置したアイコンのIDをbuilder.setSmallIconに指定します。
override fun onNotificaitonAppeared(
context: Context,
msgId: String,
msg: String?,
icon: Bitmap?,
pendingIntent: PendingIntent?
): Notification {
// 独自の通知エリア作成サンプル
val builder: NotificationCompat.Builder = NotificationCompat.Builder(context, "sample_notification")
builder.setTicker(msg)
builder.setContentText(msg)
builder.setContentTitle("sample App")
builder.setColor(Color.parseColor("#0F69B6"))
builder.setSmallIcon(R.drawable.appbox_notification_icon)
builder.setContentIntent(pendingIntent)
return builder.build()
-
MainActivity.ktMainActivity.ktに通知チャネルを作成するための以下のコードをonCreateに指定します。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
...
/** 下記はカスタマイズサンプルになります。 */
// 通知チャンネルサンプル
// ※ 通知エリアカスタマイズを行うとデフォルトチャンネルは削除されますので必ず任意の箇所で作成したチャンネルを登録してください
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val nm: NotificationManager = this.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val channel = NotificationChannel(
"sample_notification", // 通知チャンネルID
"sample", // 通知チャンネル名(端末のアプリ通知設定画面に表示されるチャンネル名)
NotificationManager.IMPORTANCE_DEFAULT // 重要度
)
nm.createNotificationChannel(channel)
}
}
コメント
0件のコメント間違いや、他の内容について知りたいことなどがあればコメントを残してください。
任意のメールアドレスとパスワードで登録・サインインができ、お問い合わせの状況もご確認いただけます。
サインインしてコメントを残してください。