没有接收者允许在Gcm.Client.GcmClient.CheckManifest - Xamarin.Forms上接收com.google.android.c2dm.permission.SEND

时间:2015-11-05 06:32:10

标签: google-cloud-messaging xamarin.android xamarin.forms

我正在使用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中成功注册,为什么在这里抛出异常?

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我认为错误是因为您未设置以下权限:

  

com.google.android.c2dm.permission.SEND

尝试在自定义BroadcastReceiver类中设置权限,如下所示:

null

我希望它有所帮助