谷歌云消息: 我给我的 Android 应用程序所需的权限,但它仍然给出错误时注册该设备。

标签: Android
发布时间: 2014/1/12 15:42:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想开发一个应用程序可以接收来自 GCM 推送通知。我在我的 Android 清单给下列权限:

 <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<permission android:name="com.example.notifications.permission.C2D_MESSAGE" android:protectionLevel="signature"></permission>
<uses-permission android:name="com.example.notifications.persmission.C2D_MESSAGE"/>
<uses-permission android:name="com.google.android.<receiver
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        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 android:name="com.example.notifications" />
        </intent-filter>
    </receiver>
dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>

我在清单中也定义了以下应用:

<receiver
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        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 android:name="com.example.notifications" />
        </intent-filter>
    </receiver>

我也执行了 GCMIntentService 与必要的方法重写,包括 onRegistered 的一种方法。

但是,我收到下列错误在 Logcat 中调用 GCMRegistrar.getRegistrationId 方法时:

05-31 15:13:19.359: W/ActivityManager(62): Permission Denial: receiving Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[com.example.notifications] (has extras) } to com.example.notifications requires com.example.notifications.permission.C2D_MESSAGE due to sender com.google.android.gsf (uid 10013)

它似乎说这款应用程序需要 com.example.notifications.permission.C2D_MESSAGE permssion,虽然它已经被提供了在清单中。

任何人都不会有任何的想法如何,我可以解决这个问题吗?

谢谢你。

解决方法 1:

更换这条线

<uses-permission android:name="com.example.notifications.permission.C2D_MESSAGE" />

与。

<uses-permission android:name="com.example.notifications.persmission.C2D_MESSAGE"/>

问题是

permission.C2D_MESSAGE 

官方 gcm 教程鉴于这里请去通过这以避免今后的问题http://developer.android.com/google/gcm/gs.html

官方微信
官方QQ群
31647020