脚本程序运行起来后,脚本会发送AT命令到底层软件去查询IMEI、IMSI、ICCID,所以从脚本运行起来,到真正获取到IMEI、IMSI、ICCID,是需要一段时间的,例如几秒钟,这个时间无法估计。
代码设计时,分如下两种情况:
1、如果是在连接上自己的服务器之后实时调用接口(例如获取IMEI的接口misc.getImei())去获取,则不用考虑是否已经成功读取的问题,因为在连接服务器成功之前,肯定会成功获取到imei,imsi,iccid
2、其他情况:
(1)如果在task的function中使用
if misc.getImei()=="" then sys.waitUtil("IMEI_READY_IND") end --接下来就能直接调用misc.getImei()获取到IMEI了 if sim.getIccid()==nil then sys.waitUtil("IMSI_READY") end --接下来就能直接调用sim.getIccid()获取到ICCID了 if sim.getImsi()==nil then sys.waitUtil("IMSI_READY") end --接下来就能直接调用sim.getImsi()获取到IMSI了
(2)如果不是在task的function中使用
sys.subscribe("IMEI_READY_IND", function() --直接调用misc.getImei()获取IMEI end) sys.subscribe("IMSI_READY", function() --直接调用sim.getIccid()获取ICCID --直接调用sim.getImsi()获取ICCID end)