android - ParseInstallation 保存后解析 deviceToken 为空

标签 android parse-platform

我正在开发一个使用 Parse 发送和接收通知的应用程序。现在的问题是,当我注册安装时,deviceToken 为空(deviceType 和 installationId 不为空)。当此 token 为空时,我无法收到任何通知。

我如何注册安装:

Parse.initialize(this, "x", "x");
ParseInstallation.getCurrentInstallation().saveInBackground();

当我将 Parse 的所有代码添加到我的应用程序 (https://www.parse.com/apps/quickstart#parse_push/android/native/existing) 时,一切正常。

我的 AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx.xxx" >

    <uses-sdk android:maxSdkVersion="17" />
    <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.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <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.xxx.xxx.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.xxx.xxx.permission.C2D_MESSAGE" />

    <application
        android:name="com.xxx.xxx.Name_"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker" />

        <activity
            android:name="com.xxx.xxx.Activities.SplashActivity_"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.LoginActivity_"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.ForgotPassword_"
            android:screenOrientation="portrait"
            android:label="@string/app_name">
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.MainActivity_"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.EditProfile_"
            android:screenOrientation="portrait"
            android:label="@string/edit_profile" >
        </activity>

        <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
            </intent-filter>
        </receiver>
        <service android:name="com.google.android.gms.analytics.AnalyticsService"
            android:enabled="true"
            android:exported="false"/>

        <service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name=".Receiver.MyPushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
            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.xxx.xxx" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

我刚刚创建了一个新应用程序,添加了 Parse 并删除了 Parse 中的 Installation 类/表,但仍然没有 deviceToken。

最佳答案

我认为这是新的 Parse SDK 中的错误。我降级到 1.9.0,现在一切正常。

来源:https://groups.google.com/forum/#!topic/parse-developers/a1Z0SSC304M

关于android - ParseInstallation 保存后解析 deviceToken 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31270510/

相关文章:

android - 获取半透明Android导航栏的位置和可见性

java - 解析增量功能的增量不会超过 1

android - 删除解析文件

swift - 可选类型 PFQuery 的值?没有打开

ios - 将字典对象与 Parse.com 中的数组进行比较 - iOS

android - 创建假的拖动事件来移动 ViewPager

android - 在 ubuntu 中找不到 gradlew.bat

java - 运行时权限应该采用相同的方法。如何正确处理?

java - Android Studio 中的 Webview 确实显示了导航菜单和背景 Logo

parse-platform - Parse.com 在 afterSave 中保存