androidのプッシュ通知について、今更書きます。

プッシュ通知するにはGoogle Cloud Messaging を使います。

GCMはAndroid 2.2以上でしか使えません。

1.senderIDを取得
https://code.google.com/apis/console/につないでプロジェクトを作成。

[Create project]したら
左側のメニューから[overView]を選択。
そうすっと、「Project Number」というものがあるので、これをメモメモ。
これがsenderIDになります。

2.GCM serviceをONに設定。

左側のメニューから[Services]を選択し、
Google Cloud MessagingのトグルをONに変更。
そしてaccept(同意)。

3.API Key(=Authorization key)を取得
左側のメニューから[API Access]を選択、Create new Server key。
作成したAPI keyをメモメモ。
※元々あるSimple API Accessのapikeyでも使えます。

ではアプリ側~
1.Manifestの編集

< permission android:name="my_app_package.permission.C2D_MESSAGE" android:protectionLevel="signature" />
< uses-permission android:name="my_app_package.permission.C2D_MESSAGE" />
< uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
< uses-permission android:name="android.permission.WAKE_LOCK" />

< application android:icon="@drawable/icon" android:label="@string/app_name">
< service android:name="my_app_package.GCMIntentService" />

< receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >

< intent-filter>
< action android:name="com.google.android.c2dm.intent.RECEIVE" />
< action android:name="com.google.android.c2dm.intent.REGISTRATION" />
< category android:name="my_app_package" />
< /intent-filter>

< /receiver>
< /application>

GCMIntentServiceは自分で用意。
そのレシーバが用意できたら、
コード内でregistrationIdを取得、登録します~

ここで一番最初に取得したsenderIDを使いますわよ!

onCreate()などで⬇

GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
GCMRegistrar.register(this, "SENDER_ID");
} else {
Log.v(TAG, "Already registered");
}

そしてこのregistrationIdとAPI keyを使って、phpなどでプッシュしてあげれば出来上がり~~

そのプッシュされた内容はGCMIntentServiceのレシーバーで受け取ることになります。
@Override
protected void onMessage(Context context, Intent intent) {
String str = intent.getStringExtra("message");
Log.w("message:", str);

}
GCMIntentService書けよって?
面倒~検索したらすぐ出てくるよ!

ではは~