我在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对象的方式的问题,但我还没有找到它。
为什么这不起作用?