设备上将忽略GCM通知

时间:2013-12-11 15:07:41

标签: android push-notification google-cloud-messaging

我正在尝试在Android上执行一些GCM通知。我已经在设备上发生了一些事情。

NotificationService抛出以下异常:

12-11 16:02:19.650      202-380/? E/NotificationService﹕ Ignoring notification with icon==0: Notification(contentView=org.***.**.reciever/0x1090098 vibrate=null,sound=null,defaults=0x0,flags=0x0)

这是我的清单供参考:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.***.**.reciever"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="19" />

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<permission android:name="org.***.**.reciever.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>
<uses-permission android:name="org.***.**.reciever.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/***"
    android:name=".***Application" >
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <activity
        android:name="org.***.**.reciever.MapActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <receiver
        android:name="util.GcmBroadcastReciever"
        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="org.***.**.reciever" />
        </intent-filter>
    </receiver>
    <service android:name="util.GcmIntentService" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="***"/>
</application>

所有 *。只是蒙面包名,它们都是一样的。

知道我做错了吗?

此外,通知是否应该在没有任何额外代码的设备上弹出,或者应用程序是否必须要求操作系统在GCM推送到达时在屏幕上显示通知?我想我读过一些关于Android的内容与iOS不同。

1 个答案:

答案 0 :(得分:0)

想出来,这不是我想到的导致问题的实际推送消息。所以我在错误的树上吠了几个小时。

事实证明这是实际的通知,因为它是来自Google&gt;的演示代码。&lt;

替换为正确的代码 - &gt;工作

谢谢你的时间!