【问题标题】:GCM in unity using EtceteraAndroid plugin and Urban Airship使用 EtceteraAndroid 插件和 Urban Airship 统一 GCM
【发布时间】:2012-11-21 10:08:37
【问题描述】:

我正在尝试在统一 3.5 制作的 Android 游戏上使用推送通知。这些是我做的步骤:

我购买了 prime31 名为 EtceteraAndroid 的资产,并在其门户上创建了 urbanairship 应用程序。然后我像这样修改airshipconfig文件:

gcmSender = My_Proj_number 这里 运输 = gcm developmentAppKey = devkey developmentAppSecret = 开发密钥 productionAppKey = devkey productionAppSecret = dev 密钥(因为我没有 Urban Airship 的发布帐户) inProduction = false

  • 我创建了 google 帐户并在那里启用了 GCM,将服务器 API 密钥复制到 UrbanAirship GCM API 密钥
  • 我添加了这里提到的一些权限Using GCM, Urban Airship to send Push Notification
  • 在代码内部,我调用了 EtceteraAndroid 插件中提供的启用 Urbanair 推送功能。
  • 我在我的 Android 设备上构建并运行 apk。
  • 我没有找到在 UrbanAirship 门户上注册的任何 APPID,因此在我的 android 设备上没有收到任何通知 :(

任何建议将不胜感激。

【问题讨论】:

  • 你解决了吗?我问过 Prime31,他们说 Android 版本的 Etcetera-plugin 已经放弃了对 Urban Airship 的支持。你找到解决办法了吗?

标签: android push-notification urbanairship.com


【解决方案1】:

我目前也在尝试解决与 Urban Airship 插件相关的问题。

根据 Prime 31 的说法,事情似乎应该开箱即用。但您可能已经注意到,GCM 支持已被弃用,Prime 的插件仍然依赖于 C2DM。

Perhaps you should also post on the following forum thread 因为这是关于这个话题的讨论。

话虽如此,即使 GCM 帐户不正确,我也可以让我的 APID 做出响应。但我无法收到任何推送通知。更具体地说,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"/>

如果您设法让推送通知工作,请告诉我,因为我无法让这部分工作!干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多