在这样的不同解决方案之后没有任何效果。
但是我正在使用不同的Keystore签署不同的版本,所以这不起作用。
任何线索?
答案 0 :(得分:0)
这是我自己的经历:
首先,使用$ {applicationId}编辑主AndroidManifest.xml,如下所示:
<permission android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
由于您对不同的构建变体使用相同的GCMIntentService类。然后,通过覆盖创建自己的GCMBroadcastReceiver。
package com.example;
import android.content.Context;
import com.google.android.gcm.GCMBroadcastReceiver;
public class MyGCMBroadcastReceiver extends GCMBroadcastReceiver {
@Override
protected String getGCMIntentServiceClassName(Context context)
{
return "com.example.GCMIntentService";
//you may replace with your own GCMIntentService path.
}
}
最后,在AndroidManifest.xml中编辑接收器标签,如下所示:
<receiver
android:name="com.example.MyGCMBroadcastReceiver"
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="${applicationId}" />
</intent-filter>
</receiver>
我希望它对你有所帮助,谢谢。