我將GCM與Android應用程序集成以接收推送通知。一切正常,我可以收到通知。問題是,即使應用程序未運行,但我需要接收它們時,我收到這些通知運行時。GCM - 以編程方式註冊廣播接收器時獲取SERVICE_NOT_AVAILABLE
所以我認爲,如果我將在應用程序中以編程方式註冊廣播接收器,並在onDestroy()
中取消註冊它將完成這項工作。
但是,這不起作用,當試圖獲得註冊ID它返回SERVICE_NOT_AVAILABLE。
這是明顯的作品申報的廣播接收器,但我收到通知,所有的時間:
<receiver android:name=".service.MyBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<category android:name="com.testgcm"/>
</intent-filter>
</receiver>
這就是我如何編程方式創建,但收到上述錯誤:
receiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.google.android.c2dm.intent.RECEIVE");
filter.addCategory("com.testgcm");
registerReceiver(receiver, filter, "com.google.android.c2dm.permission.SEND", null);
你能告訴我我做錯了什麼? 或者也許有更好的方式使得只有在應用程序運行時才能接收通知?