嘿大家我最近一直在寻找Android的原生扩展,我需要添加Google Cloud Messaging。我能够让Google Cloud Messaging应用程序自行运行。但是现在我已将它集成到Flash的原生扩展中,我发现了一个无法解决的问题。
08-21 17:58:01.661: W/ActivityManager(180): Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[air.GCMAppTest.debug] flg=0x10 cmp=air.GCMAppTest.debug/com.xxxxxxxxx.extensions.GCM.GCMIntentService (has extras) }: not found
GCM广播接收器收到
时出现此错误08-21 17:58:01.661: V/GCMBroadcastReceiver(7604): GCM IntentService class: com.gamecloudstudios.popsportsandroidane.extensions.GCM.GCMIntentService
错误是由Flash Package Context作为默认包引起的。 当我需要默认包作为包含GCMIntentService的包时。
有没有人能够让GCMIntentService在Android Flash Native Extension中运行?或者任何AndroidIntentService。
答案 0 :(得分:4)
您需要确保将Intent Service添加到AIR应用程序描述符的清单添加内容中,而不是本机代码库的Android清单中。例如,以下代码是我们在GCM原生扩展available here if you're interested的示例应用程序中使用的代码。
有一些事情要注意,特别是“空气”。一些android名称的前缀。但只要您拥有所有这些附加内容,Android代码的实际实现应该与Google示例非常相似。
<android>
<manifestAdditions><![CDATA[
<manifest android:installLocation="auto">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- Only this application can receive the messages and registration result -->
<permission android:name="air.com.distriqt.test.debug.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="air.com.distriqt.test.debug.permission.C2D_MESSAGE" />
<application>
<receiver android:enabled="true" android:exported="true" android:name="com.distriqt.extension.pushnotifications.PushNotificationsBroadcastReceiver" 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.distriqt.test.debug" />
</intent-filter>
</receiver>
<service android:enabled="true" android:exported="true" android:name="com.distriqt.extension.pushnotifications.gcm.GCMIntentService" />
</application>
</manifest>
]]></manifestAdditions>
</android>