2013-12-18

Android端末にSNS(AWS) + GCMでPush Notification

最近モバイルが熱いので、モバイル系?の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の設定

  1. AWSサンプルアプリ(snsmobilepush.zip)をダウンロードしてAndroidアプリを作成

  2. サンプルのAndroidアプリを起動するとRegistrationIDが発行されるので、

その値をAWSコンソールでSNSに設定。

  1. 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を弄ってみます。

このエントリーをはてなブックマークに追加