在Android 4下,中止GCM消息广播不起作用

时间:2013-06-14 12:19:32

标签: android broadcastreceiver google-cloud-messaging

无法找到此行为的解决方案: 当从GCM接收消息时,清单中的广播接收器正确处理它(创建通知)但是如果应用程序在屏幕上(显示祝酒并取消通知),我希望它做另一件事。

以下是清单上的代码:

    <receiver android:name="com.google.android.gcm.GCMBroadcastReceiverPlus"
              android:permission="com.google.android.c2dm.permission.SEND">
    <intent-filter>
    <!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<!-- Category -->
<category android:name="org.example.hello" />
</intent-filter>

这是适用于JB的代码,但不适用于以下代码:

    public BroadcastReceiver registerCustomBR(){
    IntentFilter filter = new IntentFilter();
    filter.addAction("com.google.android.c2dm.intent.RECEIVE");
    filter.setPriority(1);
    receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String message = intent.getExtras().getString("text");
            CharSequence text = "Message received in app: " + message;
            Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
            toast.show();
            Log.i(TAG, "Message received: "+message);
            ElementWave.messageReceived(context, intent);
            abortBroadcast();
         }
     };

     this.registerReceiver(receiver, filter);
     return receiver;
}

非常新的android,所以我希望有一个简单的解决方案或任何明显的我缺少...

0 个答案:

没有答案