我正在使用GCM在Android中接收推送通知。我在Android主要活动中有以下代码,它依赖于Xamarin.Forms项目
try
{
//Check to see that GCM is supported and that the manifest has the correct information
GcmClient.CheckDevice(this);
GcmClient.CheckManifest(this);
var registrationId = GcmClient.GetRegistrationId(this);
if (string.IsNullOrEmpty(registrationId))
{
GcmClient.Register(this, GcmBroadcastReceiver.SENDER_IDS);
}
}
catch (Exception e)
{
}
执行检查时显示其抛出异常:
No receiver allowed to receive com.google.android.c2dm.permission.SEND
at Gcm.Client.GcmClient.CheckManifest
但是我在清单中添加了必要的权限,下面是我的清单:
<uses-sdk android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<permission android:name="com.package.name.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.package.name.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application android:label="Mobile.Droid" android:icon="@drawable/icon" android:theme="@android:style/Theme.Holo.Light"></application>
我在我的一个Xamarin.Android项目中有相同的清单文件,它在GCM中成功注册,为什么在这里抛出异常?
我错过了什么?
答案 0 :(得分:0)
我认为错误是因为您未设置以下权限:
com.google.android.c2dm.permission.SEND
尝试在自定义BroadcastReceiver类中设置权限,如下所示:
null
我希望它有所帮助