4.1(APIレベル16)以上
02-04 13:25:37.552: V/GCMIntentService.onMessage:70(11555): Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10 pkg=my.app.package cmp=my.app.package/.GCMIntentService (has extras) }
4.0.3(APIレベル15)
02-04 13:46:33.894: V/GCMIntentService.onMessage:70(380): Intent { act=com.google.android.c2dm.intent.RECEIVE cat=[my.app.package] cmp=my.app.package/.GCMIntentService (has extras) }
16以上だと、インテント内にカテゴリー指定がなく、パッケージに変わっている。
GCMのドキュメントにも、minSdkVersionを16以上に指定した場合は、マニフェストに記述するcom.google.android.gcm.GCMBroadcastReceiverのintent-filterで、categoryのname値にパッケージ名を指定する必要がないとある。
Notice that android:name in the category tag must be replaced by your application's package name (and the category tag is not required for applications targeted to minSdkVersion 16 and higher).
メッセージが送られる端末に応じて、インテントにカテゴリーを含めるのか、パッケージ名を含めるのか、振り分けているようだ。
minSDKVersionを16以上にすると、さらに、permission.C2D_MESSAGEの要求も要らなくなるし、マニフェストがスッキリするね。
0 件のコメント:
コメントを投稿