使用vivo推送服务SDK时,必须在turnOnPush成功后再getRegId,否则拿到regId的为null
应该在turnOnPush的IPushActionListener.onStateChanged方法中或被调用之后再getRegId
import com.vivo.push.IPushActionListener;
import com.vivo.push.PushClient;
import com.vivo.push.PushConfig;
import com.vivo.push.util.VivoPushException;
public class VivoPushService {
public VivoPushService() {
try {
PushConfig config = new PushConfig.Builder().agreePrivacyStatement(true).build();
PushClient.getInstance(MyApplication.myApplicationContext).initialize(config);
} catch (VivoPushException e) {
LogUtils.LogD("此处异常说明是有必须的vpush配置未配置所致,需要仔细检查集成指南的各项配置");
e.printStackTrace();
}
// 打开push开关, 关闭为turnOffPush,详见api接入文档
PushClient.getInstance(MyApplication.myApplicationContext).turnOnPush(new IPushActionListener() {
@Override
public void onStateChanged(int state) {
// TODO: 开关状态处理, 0代表成功,获取regid建议在state=0后获取;
if (state == 0) {
PushClient.getInstance(MyApplication.myApplicationContext).getRegId(new VivoMsgCallbackService());
}
}
});
// 若不在push开关打开后获取push token为null
// PushClient.getInstance(MyApplication.myApplicationContext).getRegId(new VivoMsgCallbackService());
}
}
import android.text.TextUtils;
import com.vivo.push.listener.IPushQueryActionListener;
public class VivoMsgCallbackService implements IPushQueryActionListener {
@Override
public void onSuccess(String regid) {
if (TextUtils.isEmpty(regid)) {
LogUtils.LogD("vivo push service RegisterID is null: ");
} else {
LogUtils.LogD("vivo push service RegisterID: " + regid);
// 拿到RegisterID
}
}
@Override
public void onFail(Integer integer) {
LogUtils.LogD("vivo push service Register failed: " + integer.toString());
}
}


