• このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

以前、
【Growth Push】Androidアプリでユーザーの設定で通知をOFFにする
にて、Growth Pushのタグとセグメントを使用して、ユーザーの設定で通知をOFFにする方法をご紹介しましたが、
今回は、アプリの実装のみでユーザーの設定で通知をOFFにする方法をご紹介したいと思います。

Growth Push SDKでは、デバイスにpushが届いた際の挙動(ポップアップの表示、通知センターへの表示など)を
ReceiveHandlerで行っています。

なので、ReceiveHandler内の処理をユーザーの設定値で分岐させることにより、
ポップアップの表示、通知センターへの表示などを制御することができます。

アプリの設定画面で、ToggleButtonなどを使用して、onClick時に呼ばれるメソッドでユーザーに設定値を保持します。

public void onToggleClicked(View view) {
 
    boolean on = ((ToggleButton) view).isChecked();
 
    //
    // ユーザーの設定値を保持しておく
    // 
 }

Application#onCreateでGrowthPushのinitialize時に、以下の様なReceiveHandlerを設定します。
(※setReceiveHandlerは必ずApplication#onCreateで呼び出して下さい。)

GrowthPush.getInstance().initialize(getApplicationContext(), APPLICATION_ID, SECRET,
    BuildConfig.DEBUG ? Environment.development : Environment.production, true).register(SENDER_ID);
 
GrowthPush.getInstance().setReceiveHandler(new BaseReceiveHandler() {
    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        if (/* ユーザーの設定値 */) {
            showAlert(context, intent);
            addNotification(context, intent);
        }
    }
});

これで、アプリ内で通知設定をOFFに設定したユーザーには、
ポップアップの表示、通知センターの表示が行われなくなります。