另外,uniapp
初始化时就生成好了 getSystemInfoSync
需要的信息,导致授权后没有重新走逻辑,故没有弹出权限请求弹窗。
二、系统标识获取方法
Android
平台各大应用商店已经要求 API
等级(targetSdkVersion
)为26或以上。高版本Android
系统完善了授权系统,获取设备信息(如imei
)需要经过用户授权确认,弹出获取设备信息的授权提示框。
如果不在manifest
里指定,HBuilder的打包默认targetSdkVersion
是21,而HBuilderX
已经是26了。targetSdkVersion
变高就会引发动态权限问题。
目前5+ API获取设备信息是通过以下属性方式读取。
为了保证以上属性可用,应用需在启动时进行初始化赋值,原生层这时候就需要申请获取设备信息权限读取imei
、imsi
等信息。
即使应用没有调用以上API,应用启动时仍然执行此初始化赋值逻辑,导致应用启动时弹出设备信息授权提示框。
注意⚠️:为了避免应用启动时弹出设备信息授权提示框,建议使用5+ API的属性方式获取imei
、imsi
、uuid
信息的代码调整使用plus.device.getInfo
方法。
至于属性和方法的区别,可能普通程序员看不懂,但做底层的会知道,<