1

Unity 3.5で作成されたAndroidゲームでプッシュ通知を使用しようとしています。これらは私が行った手順です:

prime31 で EtceteraAndroid というアセットを購入し、そのポータルで Urbanairship アプリを作成しました。次に、airshipconfig ファイルを次のように変更します。

gcmSender = My_Proj_number here transport = gcm developmentAppKey = devkey developmentAppSecret = dev secret key productionAppKey = devkey productionAppSecret = dev secret key (Urban Airship の公開アカウントがないため) inProduction = false

  • Google アカウントを作成し、そこで GCM を有効にし、サーバー API キーを UrbanAirship GCM API キーにコピーします
  • ここで言及されているいくつかの権限を追加しましたGCM、Urban Airship を使用してプッシュ通知を送信する
  • コード内で、EtceteraAndroid プラグインで利用できる enable Urbanair プッシュ関数を呼び出します。
  • Android デバイスで apk をビルドして実行します。
  • UrbanAirship ポータルに登録されている APPID が見つからないため、Android デバイスに通知が届きません:(

任意の提案をいただければ幸いです。

4

1 に答える 1

0

私は現在、Urban Airship プラグインに関する問題も解決しようとしています。

Prime 31 によると、物事は箱から出してすぐに機能するはずです。しかし、すでにお気づきかもしれませんが、GCM のサポートは廃止され、Prime のプラグインは依然として C2DM に依存しています。

おそらく、次のフォーラム スレッドにも投稿する必要があります。これは、このトピックに関する議論が行われている場所で

あるためです. しかし、プッシュ通知を受け取ることができません。より具体的には、androidManifest.xml の特定の部分を同じにしておく必要があります。これは私の androidManifest.xml 構成です:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myCompany.myGame" android:installLocation="preferExternal" android:versionCode="1" android:versionName="1.0">
    <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true"/>

   <!-- The com.prime31.EtceteraApplication should be there -->
   <application android:name="com.prime31.EtceteraApplication"
                android:icon="@drawable/app_icon"
                android:label="@string/app_name"
                android:debuggable="true">

    <!-- These activities should be in there -->
    <activity android:name="com.unity3d.player.UnityPlayerProxyActivity"
              android:label="@string/app_name"
              android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name="com.unity3d.player.UnityPlayerActivity"
              android:label="@string/app_name"
              android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    </activity>

    <activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
              android:label="@string/app_name"
              android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
        <meta-data android:name="android.app.lib_name" android:value="unity" />
        <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
    </activity>

    <activity android:name="com.unity3d.player.VideoPlayer"
              android:label="@string/app_name"
              android:screenOrientation="behind"
              android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    </activity>

    <!-- ACTIVITIES -->
    <activity android:name="com.prime31.EtceteraProxyActivity"></activity>
    <activity android:name="com.prime31.WebViewActivity" android:configChanges="orientation"></activity>
    <activity android:name="com.prime31.P31VideoPlayerActivity" android:configChanges="keyboard|keyboardHidden|orientation"></activity>
    <receiver android:name="com.urbanairship.CoreReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.ACTION_SHUTDOWN" />
        </intent-filter>
    </receiver>

    <receiver android:name="com.urbanairship.push.c2dm.C2DMPushReceiver" android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.myCompany.myGame" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.myCompany.myGame" />
        </intent-filter>
        </receiver>
    <service android:name="com.urbanairship.push.PushService" android:process=":com.urbanairship.push.process" />
    <receiver android:name="com.prime31.P31UAIntentReceiver" />
</application>

<uses-feature android:glEsVersion="0x00010001" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>

<permission android:name="com.myCompany.myGame.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="com.myCompany.myGame.permission.C2D_MESSAGE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>

プッシュ通知が機能するようになった場合は、その部分を機能させることができないのでお知らせください。乾杯!

于 2012-11-28T17:53:43.830 に答える