【问题标题】:Unity Android Push Notifications - Outdated DeviceUnity Android 推送通知 - 过时的设备
【发布时间】:2015-11-24 00:44:14
【问题描述】:

我无法让推送通知在我的 Android 上的 Unity 应用程序中工作。我已按照 Parse 文档中的步骤进行操作,包括设置 AndroidManifest.xml。该设备注册了一个安装,我可以在仪表板上看到它。但是,当使用仪表板创建推送时,我的平板电脑始终显示“PPNS - OUTDATED DEVICE”。

我按照说明从这里创建了 AndroidManifest.xml 文件: https://www.parse.com/apps/quickstart#parse_push/unity/android/existing

我需要设置安装的“GCMSenderId”值吗?文档对此有点模棱两可。

这是我的清单的内容:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
    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"/>

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />
  <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
  <permission android:protectionLevel="signature"
      android:name="com.unity3d.player.permission.C2D_MESSAGE" />
  <uses-permission android:name="com.unity3d.player.permission.C2D_MESSAGE" />

  <application
  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
  android:icon="@drawable/app_icon"
      android:label="@string/app_name"
      android:debuggable="true"> <!-- SET TO FALSE FOR RELEASE BUILD -->
    <activity android:name="com.unity3d.player.UnityPlayerActivity"
              android:label="@string/app_name">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>

    <service android:name="com.parse.ParsePushService" />
    <receiver android:name="com.parse.ParsePushBroadcastReceiver"
        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="com.unity3d.player" />
      </intent-filter>
    </receiver>
  </application>
</manifest>

【问题讨论】:

    标签: android parse-platform unity3d


    【解决方案1】:

    好的,所以我想通了。我对清单文件有一些问题,但最重要的是更改包名,而不是默认的“com.unity3d.player”。我在设备上使用相同的默认包名称有另一个测试 Unity 应用程序,我相信因为它是先安装的,所以它正在拦截通知。

    无论如何,这是我的 AndroidManifest.xml 文件,供其他在使用 Unity3D 和 Android 设备解析推送时遇到问题的人使用。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.yourcompany.yourproductname"
        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"/>
    
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.VIBRATE" />
      <uses-permission android:name="android.permission.WAKE_LOCK" />
      <uses-permission android:name="android.permission.GET_ACCOUNTS" />
      <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
      <permission android:protectionLevel="signature"
          android:name="com.yourcompany.yourproductname.permission.C2D_MESSAGE" />
      <uses-permission android:name="com.yourcompany.yourproductname.permission.C2D_MESSAGE" />
    
      <application
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
      android:icon="@drawable/app_icon"
          android:label="@string/app_name"
          android:debuggable="true"> <!-- SET TO FALSE FOR RELEASE BUILD -->
        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:label="@string/app_name">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
          <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    
        <service android:name="com.parse.ParsePushService" />
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
            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="com.yourcompany.yourproductname" />
          </intent-filter>
        </receiver>
      </application>
    </manifest>
    

    请注意,您可以将“com.yourcompany.yourproductname”的所有实例替换为您要使用的任何包名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      相关资源
      最近更新 更多