友盟推送 token变化device token 为什么每次会变

友盟获取Device Token失败 - CSDN博客
友盟获取Device Token失败
按照友盟文档写可能会获取不到Device Token,我也不知道是什么原因引起的,毕竟我也是不怎么熟,不过我在查找后发现可以用这种方法获取Device Token,以防自己忘记,写一下:
private void initUMeng() {
PushAgent mPushAgent = PushAgent.getInstance(this);
mPushAgent.enable();
new Handler().postDelayed(new Runnable() {
public void run() {
deviceId = UmengRegistrar.getRegistrationId(MainActivity.this);
System.out.println(deviceId+"-------------------------------------");
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} while (TextUtils.isEmpty(deviceId));
这样就获取了44位的Device Token。
本文已收录于以下专栏:
相关文章推荐
参考了下/thread-.html
1.请先检查使用Demo能否正常工作
2.确定是否将appkey、MessageSecret、以...
两种通知都是为了提醒用户后台执行的应用有了变化。从用户角度来看,效果是一样的,都是通知。只是实现的方式不一样,对于技术实现来说。
本文主要说明push notification的device tok...
友盟可获取设备device_token
进入友盟官网查看相关文档.
获取 public static String getDeviceInfo(Context context) {
org.json.JSONObject json =...
用着好好的友盟推送服务,突然间接受不到推送消息。
首先排查了是否获取到 token。如果获取不到token,肯定是无法获取到推送消息的,因为推送消息是一句token。增加了打印,发现没有获取到tok...
说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到一种完美的解决方案,Android程序员通常需要同时集成多家推送平台(如果有自己的端内推送,还要考虑与端内推送...
友盟消息推送的集成官网上有详细步骤,按照步骤来一般情况下没错,有时候出现下图所示的情况:
这种情况可以从以下几个方面入手:
1,AndroidManifest.xml清单文件配置中检测自己...
iOS的通知(notifications)有两种形式:
push notifications,从iOS3开始就有了,由远程服务器发起通知local notifications,从iOS4开始支持...
iOS的通知(notifications)有两种形式:push notifications,从iOS3开始就有了,由远程服务器发起通知local notifications,从iOS4开始支持,由本地...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)关于友盟消息推送那些事情 - 简书
关于友盟消息推送那些事情
日期:日第一:准备友盟账号
/apps第二:创建应用,创建应用的时候会为app分配一个key值。记住key值很重要。如图所示:
第三步:获取key值后,点击中间组件
去使用消息推送 。如图所示:红线部分非常重要。
第四:在代码里面集成:如图所示:红线部分就是你申请的appkey和appsecret,关于channel 是渠道名。
第五步:在Application里面添加如下代码:public PushAgent UmengTOT() {BaseApplication.getInstance().mPushAgent= PushAgent.getInstance(this);MobclickAgent.setDebugMode(true);// SDK在统计Fragment时,需要关闭Activity自带的页面统计,// 然后在每个页面中重新集成页面统计的代码(包括调用了 onResume 和 onPause 的Activity)。MobclickAgent.openActivityDurationTrack(false);//注册推送服务,每次调用register方法都会回调该接口mPushAgent.setPushCheck(false);BaseApplication.mPushAgent.onAppStart();//注册推送服务 每次调用register都会回调该接口mPushAgent.register(newIUmengRegisterCallback() {@Overridepublic voidonSuccess(String deviceToken) {UmLog.i("um","device token: "+ deviceToken);if(OtherInfo.getStringData(BaseApplication.this,ConstantManager.DEVICETOKEN)!=null){if(!OtherInfo.getStringData(BaseApplication.this,ConstantManager.DEVICETOKEN).equals(deviceToken)){OtherInfo.saveStringData(BaseApplication.this,ConstantManager.DEVICETOKEN,deviceToken);}BaseApplication.getInstance().setTag(deviceToken);}else{BaseApplication.getInstance().setTag(deviceToken);OtherInfo.saveStringData(BaseApplication.this,ConstantManager.DEVICETOKEN,deviceToken);}sendBroadcast(newIntent(UPDATE_STATUS_ACTION));}@Overridepublic voidonFailure(String s,String s1) {UmLog.i("um","register failed: "+ s +" "+s1);sendBroadcast(newIntent(UPDATE_STATUS_ACTION));}});//此处是完全自定义处理设置BaseApplication.mPushAgent.setPushIntentServiceClass(MyPushIntentService.class);returnmPushA}第六步:获取devicetoken值
,获取后在------测试模式----添加-----测试设备,如图所示
第七步:添加测试消息 如图所示:
有三种类别:友盟里面自带的推送消息,自定义消息,应用内部消息。如果测试话将获取的token值选择独立用户,如图所示:
最后,友盟推送消息大概这么多,就介绍到这里吧!!!!遇到的问题:第一个:appid错误,我就是创建了两个消息推送的app,建议大家做推送的时候,创建一个即可,创建两个无疑是给自己找问题。第二个:设备已经注册了,提示设备未注册。原因是重新创建的消息app key和 secret值 会影响devicetoken的值。。
一名风一样的程序媛& & &首先友盟的推送是分为开发环境和生产环境,开发环境就是指我们在开发阶段,应用还没有上架到app store的时候,这时候我们按照友盟的官方文档集成友盟消息推送就可以了。然后要测试的时候,这时候选择测试模式进行测试,要在
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData
*)deviceToken方法中获取当前设备的device token,然后测试模式添加测试设备,只要上传的证书没有错误,发送消息手机就可以收到推送消息了。
& 开发环境只能在测试模式下测试,消息列表那边只能是app上线后,变成生产环境了才可以在消息列表发送消息测试。
& app上线后,第一天一般发送推送消息是失败的,因为device token在友盟那边的入库是有一天的延时的,具体可以看友盟上的这篇文章(关于ios devicetoken无效的解释/thread-.html(出处: 【友盟+】开发者社区))
& 关于app点击消息跳转到指定页面,分为当前app是在前台还是后台后者未运行,所以需要在
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
两个方法里面写页面的跳转,这个需要和后台约定好传过来的消息需要跳转到什么页面,再自己做跳转,页面跳转只能自己在代码中进行操作,我在项目中只是简单的跳转到首页,只要几行代码
&&if(!([UIApplicationsharedApplication].applicationState
==UIApplicationStateActive)) {
& & & & ESMTabBarController *tabBar = [[ESMTabBarControlleralloc]
& & & & self.window.rootViewController = tabB
& & 推送消息一直显示发送失败,不知道该如何查找原因,找了客服很多次,说device token无效,重新获取,可是重新获取很多次也还是无效,后来碰到好心人建议查看证书的包名和bundle ID是否一致,于是把导出的上传到友盟的推送证书在钥匙串中打开,发现包名确实不一样了,但是证书制作过程没有出错的,所以想不通,把证书删除了,重新导出,上传,OK。可以推送了。如果用户第一次打开app 没有允许推送,后面在设置中打开允许推送也是可以的,因为在第一次打开和每天的第一次运行app的时候都会发送token给友盟的服务器,所以推送开关的开启和关闭不影响token。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2394次
排名:千里之外
(1)(2)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'友盟推送,同一个第三方账户的消息会推送到多部手机,这是为什么? - 知乎3被浏览251分享邀请回答)的帖子:
, 或者参照我之前回答过的一个问题: 对于你提到的多个登陆设备都收到消息,我们是支持只给最后一个登陆的设备发消息的功能,具体的调用接口是setExclusiveAlias: ================================================================设置用户id和device_token的一一映射关系,确保同一个alias只对应一台设备:mPushAgent.setExclusiveAlias("", ALIAS_TYPE.SINA_WEIBO); ================================================================欢迎大家使用和关注友盟推送(), 有问题也可以在我们的论坛查找经验帖(), 或者关注我们的官方微博()获取最新的更新信息。1添加评论分享收藏感谢收起写回答匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 ios 推送 devicetoken 的文章

 

随机推荐