权限拒绝:接收意图

时间:2014-04-24 11:08:02

标签: android push-notification air-native-extension

我已经为android推送通知创建了一个空中原生扩展,但是当我运行应用程序时,我得到的异常如下:

权限拒绝:接收Intent {act = com.google.android.c2dm.intent.REGISTRATION cat = [air.com.test.mobile](有额外内容)}到air.com.test.mobile.debug需要空气.com.test.mobile.permission.C2D_MESSAGE由于发件人com.google.android.gsf(uid 10019)

清单:

<android>
        <colorDepth>16bit</colorDepth>
        <manifestAdditions><![CDATA[
   <manifest android:installLocation="auto">

       <uses-permission android:name="android.permission.INTERNET"/>       
       <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
       <uses-permission android:name="android.permission.WAKE_LOCK"/>
       <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>       
       <uses-permission android:name="android.permission.VIBRATE" />
       <uses-permission android:name="android.permission.GET_ACCOUNTS" />

       <permission android:name="air.com.test.mobile.permission.C2D_MESSAGE" android:protectionLevel="signature" />
       <uses-permission android:name="air.com.test.mobile.permission.C2D_MESSAGE" />

       <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

       <application android:enabled="true" android:hardwareAccelerated="false">

        <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" 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="air.com.test.mobile"/>
           </intent-filter>
      </receiver>
      <service android:name="com.adobe.sampleasextension.GCMIntentService" />
     <activity android:excludeFromRecents="false">
      <intent-filter>
       <action android:name="android.intent.action.MAIN"/>
       <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
     </activity>
    </application>
   </manifest>

  ]]></manifestAdditions>
    </android>

2 个答案:

答案 0 :(得分:1)

好吧,如果没有看到您的清单并根据您收到的错误,我建议您将以下内容添加到清单中:

<permission android:protectionLevel="signature"
    android:name="air.com.test.mobile.permission.C2D_MESSAGE" />
<uses-permission android:name="air.com.test.mobile.permission.C2D_MESSAGE" />

编辑:

我注意到错误也提到了air.com.test.mobile.debug。哪个是您的应用程序的主要包?也许您应该更改清单中包含air.com.test.mobileair.com.test.mobile.debug的所有相关位置。

答案 1 :(得分:0)

将此添加到AndroidManifest文件中,其中包含标记同级和标记为

的子项
<permission
        android:name="air.com.test.mobile.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="air.com.test.mobile.permission.C2D_MESSAGE" />

您必须首先使用推文通知的包名创建权限,然后为您的应用定义该权限,如上所示