我明白你的问题了。请仔细阅读推送文档:
https://leancloud.cn/docs/android_push_guide.html4
为什么拿不到 objectId 是因为,SDK 的逻辑是设备安装时初始化一个 installationId,然后像如下代码所示,保存到服务器成功后才会生成 objectId 的,因为它对应数据库表里的一条数据:
// 保存 installation 到服务器
AVInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
@Override
public void done(AVException e) {
if (e == null) {
// 保存成功
String objectId = AVInstallation.getCurrentInstallation().getObjectId();
t.setText("这个设备的 objectId: " + objectId);
// 关联 installationId 到用户表等操作……
} else {
// 保存失败,输出错误信息
}
}
});
供参考。
这个代码我有的,我也是这样写的,还是那个问题,直接run出来的显示保存成功,能获取到objectId,release出来的也是打印的保存成功,但是我输出AVInstallation.getCurrentInstallation():AVObject [className=_Installation, objectId=, updatedAt=null, createdAt=null, uuid=10aec870-d103-4c5f-b641-359a8469fc83, fetchWhenSave=false, keyValues={installationId=com.avos.avoscloud.u@47a4cce8, timeZone=com.avos.avoscloud.u@47a4cbf8, deviceType=com.avos.avoscloud.u@47a4ca90}],还是没找到原因
//这个启动pushservice,同时设置默认打开activity
PushService.setDefaultPushCallback(this, MainPageActivity.class);
// 保存 installation 到leancloud服务器
AVInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
@Override
public void done(AVException e) {
if (e == null) {
Log.e("保存成功:", AVInstallation.getCurrentInstallation().toString());
} else {
Log.e("保存失败:", e + "---#######---" + AVInstallation.getCurrentInstallation().toString());
}
AVInstallation.getCurrentInstallation().saveInBackground();
}
});
// 显示的设备的 installationId,用于推送的设备标示
Log.e("该设备--obj-id: " ,AVInstallation.getCurrentInstallation().toString());
Log.e("该设备--obj-id: ", AVInstallation.getCurrentInstallation().getObjectId());
这是我写在主页的与leancloud有关的,你看下,还需要什么?
嗯,我知道,这是我为了输出查看的,这个对象输出是: AVObject [className=_Installation, objectId=, updatedAt=null, createdAt=null, uuid=0ff63481-2b42-4c48-825b-46dc4c3e66fb, fetchWhenSave=false, keyValues={installationId=com.avos.avoscloud.u@42d6bbe0, timeZone=com.avos.avoscloud.u@42d6bda0, deviceType=com.avos.avoscloud.u@42d6bcd0}]
从这里也可以看到objectId= ,
看来你的问题和这个类似:
我们需要更改下文档,重点提示下混淆的时候,别忘了把 LeanCloud 的 SDK 相关类写入 proguard 文件。
推荐主题
主题 | 分类 | 回复 | 浏览 | 活动 |
---|---|---|---|---|
如何将用户相关信息列为对象的属性? | 问题讨论 | 0 | 606 | 16-06-3 |
云引擎大量报告500错误 | 问题讨论 | 6 | 776 | 15-12-22 |
关于不能更新数据到云端以及不能上传数组类型数据的问题 | 问题讨论 | 7 | 2.7K | 18-05-3 |
云引擎接口怎么鉴权?怎么验证客户端传来的token是否合法 | 问题讨论 | 9 | 1.7K | 16-12-20 |
“AVOSCloud.AVClient”的类型初始值设定项引发异常。 | SDK / API | 0 | 695 | 15-10-22 |