检查GcmReceiver是否有效

时间:2015-11-13 12:14:41

标签: android google-cloud-messaging

当我的测试智能手机清除缓存时,我的Android应用程序出现了一些问题:我的应用程序不再收到任何消息(更多详细信息here)。

一开始我认为我的gcm监听器服务也是用内存清除的,但事实上问题可能更深层:GcmReceiver(它应该接收一条消息并将其发送到MyListenerService)可以从RAM中清除(参见一个评论here

如何检查我的GcmReceiver是否仍然有效。我该怎么做才能支持它? 我可以将其设置为在前台运行或始终激活吗?

传统上:我关于GCM的清单(MyGcmLister。class extends GcmListenerService。class)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.app.path" >    

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- ... other permissions -->

<permission
android:name="my.app.path.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<uses-permission android:name="my.app.path.permission.C2D_MESSAGE" />

<application
...>
 <!-- ... activites... -->

<receiver
    android:name="com.google.android.gms.gcm.GcmReceiver"
    android:exported="true"
    android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <category android:name="my.app.path" />
    </intent-filter>
</receiver>      

<service
    android:name=".MyGcmListener"
    android:exported="false"
    android:enabled="true" >
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    </intent-filter>
</service>

</application>

</manifest>

0 个答案:

没有答案