2

最近Android用のネイティブ拡張機能をいじくり回している皆さん、こんにちは。GoogleCloudMessagingを追加する必要があります。GoogleCloudMessagingアプリを単独で動作させることができました。しかし、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

このエラーは、FlashPackageContextがデフォルトのパッケージであることが原因で発生します。デフォルトのパッケージをGCMIntentServiceを含むパッケージにする必要がある場合。

誰かがGCMIntentServiceをAndroidFlashNative Extensionで実行することができましたか?またはそのことについてはAndroidIntentService。

4

1 に答える 1

4

ネイティブ コード ライブラリの Android マニフェストではなく、AIR アプリケーション記述子のマニフェスト追加にインテント サービスを追加していることを確認する必要があります。たとえば、次のコードは、GCM ネイティブ拡張機能のサンプル アプリケーションで使用するもので、興味がある場合はこちらから入手できます

そこには注意すべき点がいくつかあります。特に「空気」です。一部の 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>
于 2012-08-22T23:38:54.157 に答える