【友盟+】开发者社区

Device_token 相关问题整理【安卓版】

友盟PUSH 发表于 2017-9-11 19:18:51 |

友盟PUSH
友盟PUSH 发表于 2016-4-26 16:17:38 | 显示全部楼层 |阅读模式
一. Device_token是什么 ?

Device_token是友盟消息推送服务对设备上App的唯一标识与iOS平台不同的是,这个token不是对设备的标识,对设备的标识我们用的是umid(umeng id)和utdid(阿里巴巴集团统一的设备标识库),因此我们可以把Device-token近似的理解为 “设备id + appkey”,其中设备id就是前面提到的umid/utdid。

Android平台的Device_token是44位字符串,Device-token的生成规则及详细信息可参考: http://bbs.umeng.com/thread-11061-1-1.html


二. 如何获取Device_token ?

可以在Debug模式下输出的logcat中看到device_token,也可以使用下面的方法来获取device_token:
3.0.0及以上版本:
String device_token = PushAgent.getRegistrationId(context)
2.8.1及以下版本:
String device_token = UmengRegistrar.getRegistrationId(context)

三. Device_token 获取不到怎么办?

(一)3.0.0及以上版本:
参考文档的完整集成部分,排查集成步骤。

(二)2.8.1及以下版本:
Android Studio用户请确保:
1. 在自己项目的build.gradle里一定要配置applicationId,并且确认applicationId和manifest中的package保持一致。
2. 如果是android6.0以上的api编译, 需要在PushSDK的build.gradle文件的android{}块内添加useLibrary 'org.apache.http.legacy',并把compileSdkVersion的版本号改为23。
3. com.android.tools.build:gradle的版本需要在1.5.0或者以上。

Eclipse 用户请确保:
1. AndroidManifest.xml里面的${applicationId}已经全部替换成为自己项目的包名。
2. okio-0.6.1.jar、wire-runtime-1.7.0.jar这两个文件已经拷贝到PushSDK的libs目录下。
4. 自己项目中的project.properties,里面已经加入manifestmerger.enabled=true。
5. 如果是android6.0以上的api编译,需要把SDK目录下的libs/里面的org.apache.http.legacy.jar拷贝到PushSDK的libs目录,然后加入buildpath里
6. 请检查okio和wire是否放错位置,确保放到PushSDK的libs目录下.

另外需要注意以下:
1. 请确保你导入的是Pushsdk, 不是pushlib,也不是导入jar包。
2. 第一次获取Device_token 请使用上文提到的回调方法获取。
3. 如果之前集成过友盟推送的其他版本的SDK,请确保已经将之前的文件全部删除,包括jar包,manifest中的配置文件,以及相关的armeabi需要全部删除。
4. 如果您的项目中有混淆,请确保已经添加混淆代码。
5. 包名不要填错了
6. 有些公司会对淘宝域名做限制,如果有这种情况建议在4G网络环境下做测试。

使用Demo获取不到Device_token用户请确保:
1. demo 的使用方法是正确的:导入demo,用demo的包名注册一个应用,获取appkey和secret,替换appkey和secret,然后运行demo。
2. 使用eclipse导入demo时,请把下载的eclipselibs目录下的okio-0.6.1.jar、wire-runtime-1.7.0.jar两个文件手动拷贝到demo的Pushlib的libs目录下。
3. 确认一下自己下载的sdk版本是完整版还是no-utdid版本,no-utidid版本的zip里的demo是缺少utidid的,所以会报“全局设备格式号错误”,因此如果想看demo的效果,一定要用完整版zip里面的demo。

四. Device_token 在什么情况下会变?

有以下两种情况会导致设备的Device_token变化:
1. 设备卸载过,又重新安装,token可能会变化(小概率)
2. 设备没有SD卡,设备id变化导致的device-token变化。




上一篇:友盟推送 注册失败
下一篇:推送除了2.8.0的版本其他的的怎么下载不了



JoannaYan
JoannaYan 发表于 2016-6-6 18:39:33 | 显示全部楼层
请教下,我下载的Demo,在Android5.1上可以获取到Device_token,在两台4.X的设备上怎么就获取不到了?????

stevewang
stevewang 发表于 2016-10-18 22:02:41 | 显示全部楼层

强先生
强先生 发表于 2017-4-11 10:07:00 | 显示全部楼层
获取device_token的时候返回错误,按照开发文档添加的配置。请问这个报错需要怎么解决?
I/com.umeng.message.PushAgent: register-->onFailure-->s:503.1,s1:req data null

强先生
强先生 发表于 2017-4-11 10:07:53 | 显示全部楼层
强先生 发表于 2017-4-11 10:07
获取device_token的时候返回错误,按照开发文档添加的配置。请问这个报错需要怎么解决?
I/com.umeng.messa ...

基于3.1.0a的PushSDK


友盟PUSH
友盟PUSH 发表于 2017-4-13 10:48:06 | 显示全部楼层
强先生 发表于 2017-4-11 10:16
The AndroidManifest config is right
deviceToken fail !!!-->s:503.1;s1:req data null

对照一下集成文档,仔细排查看一下




友盟版主
友盟版主 发表于 2017-9-11 19:18:51 | 显示全部楼层
用demo的包名注册一个应用,获取appkey和secret,替换appkey和secret,然后运行demo。还是不行啊,下载的也是完整版的
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

AppTrack生成的短链在微信及手Q,被爆诱导分享
AppTrack生成的短链在微信及手Q,被爆诱导分享,有无解决方案?
【教程】如何在今日头条上投放apptrack的监测链接?
【教程】如何在今日头条上投放apptrack的监测链接?适用最新的今日头条后台 操作教程: 1、登陆apptrack,
投资10元,半个月变501.86元,一个月后赚26189.96元!
投资10元,半个月变501.86元,一个月后赚26189.96元!实力见证一切,可以放大做!

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表