android 初始化如何判断初始化是否成功


(小股东) #1

android 初始化如何判断初始化是否成功,除了看 log有 loginscuess 标志 还有什么方法判断 或者回调什么的


(12) #2

获取 regIstrationID 值。
监听 regIstrationID 的广播


(小股东) #3

因为我们这边机器的都是一样的 比如说都是华为mate9机型, 我现在的情况是 假如有十台机器 ,装同样的app,但是有一台会收不到推送 ,因为 registrationID为空 ,那这个时候 我应该 怎么确保 我的每个机器 都在注册成功的 情况下 ,再获取 registrationID呢


(小股东) #4

还有 假如我第一次初始化失败了 我在那个长连接的监听里面再次初始化 这样操作可以吗


(12) #5

你调 get方法,只要是集成成功的情况下 get方法都能取到 regIstrationID值


(小股东) #6

我的意思是说 我如果 获取不到 regIstrationID 的值呢 id值为空的情况下是什么原因 同一个型号的设备 一个可以获取到 一个不可以 ,正面回答一下 很迷惑


(12) #7

1、请你提供这个设备的 log 来分析

2、可能与网络有关


android 集成后 初始化失败 APP停止运行
(小股东) #8

也就是说 我现在只能被动的查看 我是否登录成功了 只能通过log是吧


(12) #9

1、[quote=“dong521, post:6, topic:26266”]
同一个型号的设备
[/quote]

同一个 App ,只要测试通过,基本就是没有问题的。

2、如果获取不到,那么一般就是获取的太早了,需要你延迟获取一下。


(小股东) #10

我想问的是 如果我获取的 regIstrationID 为 空 是不是 是init 初始化的时候失败了 id 才为空?


(小股东) #11

或者说 在我 init之后十分钟延迟操作的情况下regIstrationID 为空 是什么导致的呢


(小股东) #12

如果 我在延迟获取 regIstrationID 后 其值为空, 那我应该怎么办


(12) #13

1、失败了会为空,失败了会有报错,若集成本身有问题,在测试的时候就会发现;除此之外就是可能当时网络的问题,就需要你们监听一下网络的状态,是否有内网限制

2、你在初始化成功之前就获取了,也会为空,但不代表他初始化就失败了,是你取值取早了

3、如果是延迟获取,请调用get方法去获取。

4、因为网络问题导致的无法注册成功,SDK会自动在网络正常时重新初始化直到成功。


(小股东) #14

集成本身没有问题 ,这是肯定的 因为 同样的 设备型号,同样的 app,有的可以 接收 推送,有的不可以, 在这个前提下,那如果 init初始化 失败了 ,客户端有什么补救的措施?


(12) #15

1、SDK会自动重试直到成功

2、你现在是不是遇到了同样的设备同样的APP获取不到regIstrationID?可不可以直接提供log来分析下是什么原因导致的?

3、在集成本身没问题的情况就只有网络这一个可能了。

4、可不可以接受推送与你regIstrationID是不是去得到没有必然联系,你regIstrationID取得到也可能收不到消息,麻烦分开讨论。


(小股东) #16

您说的第二点 是对的 有的能获取到 有的不能 , 因为客户那边再用,所以log没有办法收集,

如果 init初始化 失败了 ,客户端有什么补救的措施


(12) #17

没有办法补救,没有提供相关 API,只是 SDK 自己会自动重试。

一般先排除掉网络的因素,使用 4 G,换一个网络。

其次就只能取log来分析具体原因,才能具体分析。

因为一般是不会出现这样的情况的,有特殊情况出现,就得要具体信息具体分析


(小股东) #18

那网络这边 sdk做补救措施了吗 请详细说一下


(12) #19

就是网络不好的情况下, SDK 会自动重试呀,这还能怎么详细说呢?


(小股东) #20

我们现在的问题是这样的 同样的 设备型号,同样的 app,用的regIstrationID ,在相同的网络情况下,现在有三分之一的人收不到推送