最近モバイルが熱いので、モバイル系?のPush NotificationサービスのSNSを触ってみた。
今回はRegistrationIDを発行して、AWSコンソールからPublishする感じまで。
参考URL:
http://docs.aws.amazon.com/sns/latest/dg/mobile-push-gcm.html
http://dev.classmethod.jp/smartphone/android/amazon-sns-mobile-push/
全体の流れとしては
1. GCMの設定
AWSサンプルアプリ(snsmobilepush.zip)をダウンロードしてAndroidアプリを作成
サンプルのAndroidアプリを起動するとRegistrationIDが発行されるので、
その値をAWSコンソールでSNSに設定。
- SNSのコンソールでメッセージをPublish!
1, 2までは簡単なんだけど、3でRegistrationIDが発行されなくて、激ハマリ状態に陥りました。
具体的にはAWSサンプルアプリは起動するものの、「Welcome」の文字列しか出ない状態。
LogCatタグを見てみると
SERVICE_NOT_AVAILABLE とか
unable to start service intent act=com.google.android.c2dm.intent.registration ~
とかっていうログが吐かれている。
これはAVDがGoogleAPIsに対応していない為に起こる問題で、
Android SDK Managerで対象プラットフォームのGoogle APIsをインストールして、
AVDのTargetに[Google APIs~]を選択してあげればOKでした。
つまりはGoogle APIsがAndroid端末にインストールされていないのに
GCMのAPIは叩けないよっていうことみたい。そりゃそうか。
ちなみに下の方にあるExtrasのGoogle Play servicesもインストールが必要で、
下記の参考URLにあるように、google-play-services.jar、android-support-v4.jar、android.jarを入れてあげないとダメっす。
RegistrationID発行はGCMの世界だけど
RegistrationIDをSNSに登録したり、PublishしたりはAPIで可能らしいので
次回はapex(force.com)でSNSを弄ってみます。