growthbeat/growthbeat-android

Exception java.lang.IllegalArgumentException at com.growthpush.handler.BaseReceiveHandler.defaultLaunchPendingIntent

Opened this issue · 0 comments

Android12以上で以下のエラーが発生しています。

Exception java.lang.IllegalArgumentException:
  at android.app.PendingIntent.checkFlags (PendingIntent.java:378)
  at android.app.PendingIntent.getActivityAsUser (PendingIntent.java:461)
  at android.app.PendingIntent.getActivity (PendingIntent.java:447)
  at android.app.PendingIntent.getActivity (PendingIntent.java:411)
  at com.growthpush.handler.BaseReceiveHandler.defaultLaunchPendingIntent (BaseReceiveHandler.java:163)

PendingIntentの仕様変更によるものと思われます。
https://developer.android.com/about/versions/12/behavior-changes-12?hl=ja#pending-intent-mutability

int flags = PendingIntent.FLAG_CANCEL_CURRENT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
flags = PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE;
}
return PendingIntent.getActivity(context, requestCode, intent, flags);

こちらのコードで、Android12以上は、flags = PendingIntent.FLAG_IMMUTABLE にする必要があると思われます。

ご対応いただけますでしょうか?
よろしくお願い致します。