【友盟+】开发者社区

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

友盟PUSH 发表于 2017-12-28 18:29:16 |

友盟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。还是不行啊,下载的也是完整版的

我乐斗地主
我乐斗地主 发表于 2017-12-28 16:54:47 | 显示全部楼层
请问友盟push有没有qq群可以反馈问题?使用3.3.5x聚合版,下载了完整demo,在demo中获取不到device token,
看到16年提示需要在getRegistrationId之前mPushAgent.enable,IUmengCallback走了onFailure, IUmengCallback  --onFailure-- s=-11; s1=accs channel error

使用小米5和努比亚两款手机,安卓版本分别是6.0和5.0.2,
请问channel error怎么处理?

我乐斗地主
我乐斗地主 发表于 2017-12-28 17:19:49 | 显示全部楼层
又看了一下demo,在CommonApplication的onCreate时,执行initUpush()方法中,
//注册推送服务 每次调用register都会回调该接口
        mPushAgent.register(new IUmengRegisterCallback() {
...
回调onFailure,com.umeng.CommonApplication: --debug-- register failed: -11 accs bindapp error!

即应用启动时候bindapp error

我乐斗地主
我乐斗地主 发表于 2017-12-28 18:21:19 | 显示全部楼层
问过同行,建议不使用http://dev.umeng.com/sdk_integate/android_sdk/android_push_doc
Demo下载地址:https://github.com/umeng/UMAndroidSdkDemo.git

改从这里下载最新版本
http://dev.umeng.com/push/android/sdk-download

我乐斗地主
我乐斗地主 发表于 2017-12-28 18:29:16 | 显示全部楼层
这篇文章解决了问题:http://blog.csdn.net/lknlll/article/details/78133392

在PushSDK 这个 Module 的gradle文件中添加如下代码:
repositories {  
    mavenCentral()  
    flatDir {  
        dirs 'libs' //this way we can find the .aar file in libs folder  
    }  
}  
在我的app Module下的gradle文件中加入了另一位大神的一段代码如下,
android {  
      
    defaultConfig {  
         
        ndk {  
            abiFilters 'armeabi'  
            abiFilters 'x86'  
        }  
    }  
}  
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

大数据商圈分析:消费者只看不买,怎么办?
以前,商场坐落在市中心的繁华地段,就引进高档轻奢品牌;在写字楼林立的商务区,就定位快时尚;在高档小区
区分搜索引擎关键字效果,拒绝推广费打水漂
区分搜索引擎关键字效果,拒绝推广费打水漂 当您通过搜索引擎推广时,通常会选大量的目标关键词,但却无法
推送广播可收到,单播不行
appkey:59f96905aed1797a2500001e device_token:3228218dc21afd81ba3e645283daf182e115367d0ff3268c1f3c051

关注我们

新浪微博
微信

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

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