消息排查常见FAQ
如何获取设备Device_token?
Android
1)注册成功时会返回devicetoken
//获取消息推送实例
PushAgent pushAgent = PushAgent.getInstance(context);
//注册推送服务,每次调用register方法都会回调该接口
pushAgent.register(new UPushRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//注册成功会返回deviceToken deviceToken是推送消息的唯一标志
Log.i(TAG, "注册成功:deviceToken:--> " + deviceToken);
}
@Override
public void onFailure(String errCode, String errDesc) {
Log.e(TAG, "注册失败:--> " + "code:" + errCode + ", desc:" + errDesc);
}
});2)sdk初始化及注册成功后通过PushAgent.getInstance(this).getRegistrationId()获取
ios
-(void)application:(UIApplication*)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
if(![deviceToken isKindOfClass:[NSData class]])return;
const unsigned *tokenBytes =(const unsigned*)[deviceToken bytes];
NSString*hexToken =[NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),
ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),
ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];
NSLog(@"deviceToken:%@===",hexToken);
//1.2.7版本开始不需要用户再手动注册devicetoken,SDK会自动注册
//传入的devicetoken是系统回调didRegisterForRemoteNotificationsWithDeviceToken的入参,切记
// [UMessage registerDeviceToken:deviceToken];
}