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書けよって?
面倒~検索したらすぐ出てくるよ!
ではは~
プッシュ通知するには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書けよって?
面倒~検索したらすぐ出てくるよ!
ではは~