NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

プッシュ通知でステータスバーに表示するアイコンを変更できますか? #218

Closed tyfkda closed 9 years ago

tyfkda commented 9 years ago

UnityのアプリにNCMBのパッケージを組込み、プッシュ通知を使用しています。 Android端末でプッシュ通知を受け取ったときにステータスバーに表示されるアイコンはアプリのアイコンが使われるようですが、それをカスタマイズして別のアイコンを使用するようにすることは可能でしょうか?

なにか方法がありましたら教えていただけると助かります。よろしくお願いします。

ncmbsupport commented 9 years ago

UnitySDKでは、通知アイコンを指定する方法はご用意しておりません。 ただし、内部でAndroid SDKを利用しているため、 AndroidSDKに存在するアイコン指定ができるメソッドを利用するように ソースコードを変更頂くことで指定したアイコンを表示することが可能です。

githubに公開しているUnity SDKに含まれるNCMB_push.jarのJavaソースコードを取得頂き、 アイコン設定ができるようにソースコードを変更/ビルドし、 Unityプロジェクトに再度インポートしていただければ指定したアイコンで表示することができます。

以下にソースコード変更の例を記載いたしますので、ご参考にしてください。   ※記載の手順は実施した1例です。環境に合わせて適宜読み替えてください。   ※以下はサポート対象外です。

アイコン設定手順(/Assets/Plugins/Android/res/drawable/notify.pngを設定する場合)

<STEP 1> アイコン画像ファイルを用意し、Unityにて以下のフォルダーに追加

       /Assets/Plugins/Android/res/drawable/notify.png

<STEP 2> 以下のGithubからUnity SDKのJavaソースコードを取得

       https://github.com/NIFTYCloud-mbaas/ncmb_unity/tree/master/Android

<STEP 3> Eclipseにてビルド用プロジェクト作成   +新規Androidプロジェクト作成  ・AndroidAPIが10を設定  ・Create custom launcher icon/ create activityをチェックしない   +上記のJavaソースファイルをcom.nifty.cloud.mbパッケージにコピー

<STEP 4> ファイル修正       ファイル:NCMBPushProxy.java       変更前:349行

         // Default Push Callback
             NCMBPush.setDefaultPushCallback(UnityPlayer.currentActivity, UnityPlayer.currentActivity.getClass());

      変更後:

         ※/Assets/Plugins/Android/res/drawable/notify.pngのファイルを指定する場合
             // Default Push Callback
             Context context = (Context)UnityPlayer.currentActivity;
             String packageName = context.getPackageName();
             int imageResourceId = context.getResources().getIdentifier("notify", "drawable", packageName);
             NCMBPush.setDefaultPushCallback(UnityPlayer.currentActivity, UnityPlayer.currentActivity.getClass(), imageResourceId);

<STEP 5> jarファイルを生成    + 修正完了したら、Eclipseのプロジェクトを右クリック、Exportを選択    ・Java/JAR fileを選択    ・srcのフォルダのみチェックを入れ、Export場所を入れる(ファイル名がNCMB_push.jarを指定する)    ・完了

<STEP 6> UnityプロジェクトのNCMB_push.jarを置き換え     STEP 5で作成したNCMB_push.jarを以下のパスに配置してください。     /Assets/Plugins/Android/libs/NCMB_push.jar  ※既存のものがある場合は上書き    再度、ビルドを行ってください

tyfkda commented 9 years ago

ご返答ありがとうございます、試してみます。

tyfkda commented 9 years ago

ご教示いただいた方法でアイコンを変更することができました、ありがとうございました。

https://github.com/tyfkda/ncmb_unity/commit/e102fe39afdfdc02c756de00c19fc72da4ca200b