保存当前安装时,Parse不会在调试应用程序上更新deviceToken

时间:2015-09-30 12:57:21

标签: android parse-platform push-notification

我在Parse,生产和开发方面有两个注册帐户。在我的原生Android应用程序中,我有两种口味,生产和开发。他们每个人都使用正确的客户端和应用程序密钥在我的应用程序的onCreate方法上初始化Parse。

当用户启动应用程序时,我可以在两个Parse安装仪表板中看到正在创建的安装行。但由于某种原因,只有在生产帐户上,deviceToken才会更新,而不是在开发帐户上。这对我来说是个大问题,因为如果Parse在保存当前安装时没有自动设置deviceToken,我就无法在这些设备上接收推送通知。

这是初始化Parse和推送通知服务的代码的一部分:

public void init(boolean isDebug) {
    try {
        if(!isDebug){
            Parse.initialize(context, context.getResources().getString(R.string.parse_app_id), context.getResources().getString(R.string.parse_client_key));

        }
        else {
            Parse.initialize(context, context.getResources().getString(R.string.parse_dev_app_id), context.getResources().getString(R.string.parse_dev_client_key));
        }
        ParseInstallation.getCurrentInstallation().saveInBackground();
    } catch (Exception exp) {
        Log.d(TAG, exp.getMessage().toString());
    }
}

我还会在用户注册或登录时保存当前安装:

public boolean saveUsernameInParseInstallation()
{
    ParseUser user = ParseUser.getCurrentUser();
    if(user == null) return false;
    else
    {
        ParseInstallation installation = ParseInstallation.getCurrentInstallation();
        installation.put("user",user.getUsername());
        installation.saveInBackground();
        return true;
    }
}

这是我注册所有接收器的清单的一部分:

    <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=".utils.Parse.MyParsePushBroadcastReceiver"
              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.myapp.cam"/>
        </intent-filter>
    </receiver>

我使用自定义ParsePushBroadcastReceiver来更改不同的通知图标等。

所有这一切的奇怪之处在于调试Parse帐户中的所有设置都已正确设置,因为iOS版本可以看到他们的deviceTokens已更新,他们也可以在开发应用程序上接收推送通知。所以我认为它必须是我注册或初始化ParseInstallation对象的方式的问题,但我还没有找到它。

为什么这不起作用?

0 个答案:

没有答案