Android で画像つきプッシュ通知を配信する方法
※Growthbeat SDK 2.0.6を導入していることが前提となります。
最新版 Growthbeat SDKは こちらよりダウンロードしてください。
アプリ側の実装
public void onCreate(){
super.onCreate();
GrowthPush.getInstance().initialize(getApplicationContext(), "YOUR_APPLICATION_ID", "YOUR_CREDENTIAL_ID",
BuildConfig.DEBUG ? Environment.development : Environment.production);
GrowthPush.getInstance().requestRegistrationId("YOUR_SENDER_ID");
GrowthPush.getInstance().setReceiveHandler(new DefaultReceiveHandler() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String endTimestamp = String.valueOf(System.currentTimeMillis());
int maxIdRange = Integer.valueOf(endTimestamp.substring(endTimestamp.length() - 9, endTimestamp.length()));
int randomNotificationId = new Random().nextInt(maxIdRange);
NotificationCompat.Builder builder = super.defaultNotificationBuilder(context, extras,
defaultLaunchPendingIntent(randomNotificationId, context, intent.getExtras()));
String image = extras.getString("YOUR_CUSTOM_KEY");
if (image != null) {
try {
URL imageURL = new URL(image);
InputStream istream = imageURL.openStream();
Bitmap iBmp = BitmapFactory.decodeStream(istream);
NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle(builder);
builder.setStyle(bigPictureStyle.bigPicture(iBmp));
istream.close();
builder.setStyle(bigPictureStyle.setSummaryText(extras.getString("message")));
} catch (Exception e) {
}
}
super.addNotification(context, randomNotificationId, builder.build());
}
});
}
private PendingIntent defaultLaunchPendingIntent(int requestCode, Context context, Bundle extras) {
Intent intent = new Intent(context, AlertActivity.class);
intent.putExtras(extras);
intent.putExtra("dialogType", DialogType.none.toString());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return PendingIntent.getActivity(context, requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);
}
起動時のApplicationクラスのonCreate()内で、GrowthPushの初期化処理を実装した後に、上記を実装してください。 初期化処理がない場合や、Activityにセットしますと、プロセスがない場合に正しく動作いたしません。
"YOUR_CUSTOM_KEY"は、配信時にカスタムフィールドで定義する任意のキーのため、変更が可能です。
管理画面にて配信の設定
カスタムフィールドに下記 json を記述して配信設定を行ってください。
{"YOUR_CUSTOM_KEY":"imageURL"}
注意点
・"YOUR_CUSTOM_KEY"はアプリの実装のキーと一致している必要があります。

画像サイズ
Androidの通知欄の画像表示領域は下記となります。
192dp × 450dp
配信イメージ
・通知一覧のトップにくると自動で画像を開きます。
・トップ以外の場合は、通知を下にスワイプすることで画像を開きます。
