我已经为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>
答案 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.mobile
到air.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" />
您必须首先使用推文通知的包名创建权限,然后为您的应用定义该权限,如上所示