2013年12月28日土曜日

ニフティクラウドmobile backendでAndroid(Nexus7)にプッシュ通知を送ってみた

今回作成したソースコードは以下で公開しています

https://github.com/kakakikikeke/android-ncmb-sample

以下にポイントを紹介します

●事前にeclipseとADT(Android Developers Tool)をインストールします

●gcm.jarは以下からダウンロードできます
gcm.jarはすでに開発が停止しているGCM用のクライアントライブラリです
ニフティクラウドmobile backendではgcm.jarが必要なようです
https://code.google.com/p/gcm/source/browse/gcm-client/dist/gcm.jar?name=gcm-1.0.2
ダウンロードしzipファイルを解凍し、./gcm-client/dist/gcm.jarをlib配下にコピーしビルドパスを追加します

●ProjectNumber(SenderId)を取得します
https://cloud.google.com/console#/project/[project_number]
ソースコード内でSenderIdとして利用します

●GoogleAPIKeyの取得
https://cloud.google.com/console#/project/[project_number]/apiui/credential
にてAPIKeyを取得します
ニフティクラウドmobile backendのダッシュボードのアプリ設定 -> プッシュ通知で取得したAPIキーを記載します

●ニフティIDの取得
ニフティクラウドモバイルmobile backendの申し込みにはニフティが提供するIDが必要です
無料で取得できるのでニフティのポータルサイトから取得します
http://www.nifty.com/

●エミュレータでは起動しません
エミュレータには「deviceToken」という端末個別のIDが存在しないためエラーとなります
at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98)
実機にアプリを直接インストールして確かめる必要があります

いろいろと方法はありますが、自分はgmailに添付してインストールしました
eclipse -> プロジェクトを右クリック -> Export -> Export Android Application -> デスクトップに保存 -> apkファイルをGmailに添付して送信 -> Android端末で送信したGmailを受信 -> apkファイルをクリック -> アプリをインストール

●USBデバッグモードをONにします
以下を参考にUSBのデバッグモードをONにします
http://kakakikikeke.blogspot.jp/2013/12/nexus7usb.html

●Nexus7用のUSBドライバをインストールします
以下を参考にUSBドライバをインストールします
http://kakakikikeke.blogspot.com/2013/12/windowsnexus7usb.html

●プッシュ開封通知を送信する場合の注意
onCreateメソッド内で NCMBAnalytics.trackAppOpened(getIntent()); を実行しますが左記が呼ばれる条件として
  1. プッシュ通知開封時にバックグラウンドでアプリが起動していないこと
  2. プッシュ通知開封時にバックグラウンドでアプリは起動しているがプッシュ開封時に起動するActivityと同一のActivityが起動していないこと
のどちらかを満たしている必要があります
プッシュ通知を開封した際にActivityを指定できるので開封専用のActivityを用意しておくと確実に送信できるかと思います

■参考サイト

0 件のコメント:

コメントを投稿