尝试做C2DM服务,但没有从服务器获取registrationID

时间:2011-11-26 04:38:29

标签: android android-c2dm

我正在尝试在我的Android应用中进行C2DM服务。我引用这个link寻求帮助。

但无法从C2DM服务器获取registrationID。我认为可能是我发送到C2DM服务器的appID问题。

实际上我是这样给appId

intent.putExtra("app",PendingIntent.getBroadcast(this, 0, new Intent(), 0));

是否正常或应添加其他任何内容。请帮帮我。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我使用google提供的以下链接。它工作正常。 确保您的Android设备上有市场同步。

C2DM Google documentation

答案 1 :(得分:0)

如果您将清单代码粘贴到问题中,那么很容易解决您的问题。如需更多预防措施,请按照以下两个步骤检查您的清单。

1)=您是否在清单中添加了以下权限?

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
<permission android:name="com.yourpackage.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.yourpackage.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />   
<uses-permission android:name="android.permission.WAKE_LOCK" />

2)=您是否在应用程序标记中添加了以下行?

<service android:name=".C2DMReceiver" />
    <receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">       
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.yourpackage" />
        </intent-filter>        
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.yourpackage" />
        </intent-filter>
    </receiver>     

注意: - 请替换&#34; com.yourpackage&#34;根据你的项目。