いつも FANSHIP をご利用いただきありがとうございます。
プッシュ配信を行った際に発番される配信ID(message_id)が
最大値に達するおそれがある件について、Android アプリにおいても実装方法によっては
影響が発生する可能性があり、追加の調査をお願いしたくお知らせいたします。
影響範囲(Androidアプリ)
FANSHIP SDK(for Android)の一覧画面・詳細画面を以下に関連するカスタマイズを実施していた場合に影響が発生する場合がございます。
PopinfoMessage
クラスの id を Int32 に変換/ダウンキャストして利用している場合- 下記Callbackのカスタマイズをしている場合
msgId
、id
をInt32に変換/ダウンキャストしている場合- onNotificationStarted (Context context, String msgId, String popupMsg, String iconUrl, Intent payload)
- onNotificaitonAppeared (Context context, String msgId, String popupMsg, Bitmap icon, PendingIntent pendingIntent)
- onInfoTapAction (Context context, long id, String src, Intent payload)
Android SDKのパラメータはLong型(Callback はString)ですが、
意図的にこれらの受け取った値を使用しており、かつInt32に変換/ダウンキャストして利用されている
ケースでなければ発生しない事象であり、事例としては一部と認識しておりますが、注意喚起の意味でもご連絡しております。
意図的にこれらの受け取った値を使用しており、かつInt32に変換/ダウンキャストして利用されている
ケースでなければ発生しない事象であり、事例としては一部と認識しておりますが、注意喚起の意味でもご連絡しております。
具体的な確認方法
- 1.
AndroidManifest
をPOPINFO_CALLBACK_CLASS
検索 - 2.
meta-data
でvalue
に指定されている、クラス名を確認(以下のケースでは、PopinfoCallback
)
<meta-data android:name="POPINFO_CALLBACK_CLASS" android:value="jp.xxx.domain.usecase.popinfo.PopinfoCallback" />
- 3.
PopinfoCallback
のonNotificationStarted
onNotificaitonAppeared
にて以下を確認- msgId を parseInt (など)で int に変換をしていないか?
- msgId を String として、他に引き渡していないか?
- ⇒ 引き渡している場合は、引き渡し先で、parseInt(など)をしていないかを確認
- 4. 以下を確認(idはlongの定義なので可能性は低い)
onInfoTapAction
の引数(id)をダウンキャストしていないか?PopinfoMessage.id
をダウンキャストしていないか?
なお、FANSHIP SDK自体に問題はなく、対応版SDKリリースの予定はありません
影響が確認された場合
大変お手数ですが、アプリ側の実装修正をお願いいたします。
修正対応について、不明点があればお問い合わせください。
FANSHIPで桁あふれ環境での検証を実施されたい場合は、ご用意がございますので
サポート宛てにご連絡いただけますようお願いいたします。
ご迷惑をお掛けしており、大変申し訳ございません。
何卒よろしくお願い申し上げます。