大家好,我是讯享网,很高兴认识大家。
在APP开发中,由于一些功能的要求和国家安全防护审查的要求,往往需要获取用户终端的硬件特征等一些日志信息。然后这些信用包括IMEI,Android ID,MAC地址和UUID等,都是用于获取用户终端唯一标识的信息,都是字符串类型。
在为IOS和Android系统开发应用时有所不同,我们来看看目前的情况:
由于系统限制,iOS系统上无法获取设备的唯一标识符udid、IMEI号、Mac地址等信息。此处返回与证书关联的uuid,即使卸载应用程序,重新安装值也不会改变。
部分安卓系统也存在局限性,部分设备无法获取IMEI号、Mac地址等信息:在安卓9.0及之前的系统中,动态申请“获取手机信息”权限后即可获取IMEI号,而在安卓10及以上版本中,系统完全禁止获取IMEI。所以考虑到Android系统的实际情况,deviceId返回值的优先级如下:如果当前设备可以正常获取IMEI,则返回IMEI号;如果IMEI号异常,系统安全码ANDROID _ ID被返回;如果ANDROID_ID异常,则返回设备的MAC地址;如果MAC地址异常,则返回设备序列号;如果序列号异常,将随机生成一个UUID。UUID的生命周期是从APP的生成到卸载。如果在同一设备上重新安装该应用程序,将会生成一个新的UUID。
具体获取方式包括原生方式获取和使用第三方接口;
示例代码(apiCloud移动低代码开发平台的API基本对象的deviceId方法可以非常简洁地获得)
var device id = API . device id;//例如:fc 408 F8 b-9598-48b 6-a740-b 9037 adcxxe【名词定义】
设备ID:设备ID。可以通过系统提供的TelephonyManager服务获得,这是唯一的。它们还包括IMEI和MEID/ESN。
Android:使用系统提供的TelephonyManager服务获取设备ID;应用程序重新加载将更改设备ID;某些设备上可能有bug,返回的是一串0或者一串*,不唯一。
Imei:国际移动设备识别码,国际移动设备识别码的缩写。它是由15位数字组成的“电子流水号”。它与每一部手机一一对应,每一个IMEI都是世界唯一的。
Android:GSM设备返回;主板上,重装APP不会变;6.0以上的Android6.0系统需要用户授予read_phone_state权限,如果用户拒绝则无法获得。
IOS:IOS5后期被禁;在主板上重新安装应用程序不会改变。
IDFA:广告标识符,iOS独有的广告标识符。
IOS:在IOS上出来的折中方案,可以提高广告效果,保证用户的设备不被APP追踪;如果系统重置并恢复设置中的广告标识符,则可以发送更改;用户可以在设置中打开“限制广告跟踪”。
Mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。
IOS:7.0以后禁止IOS。
型号:设备的型号。
供应商:设备的制造商
Ud id:唯一的设备标识符,唯一的设备识别码,是最可靠的设备识别码。
Android:获得UDID后,编写。所以文件生成了UDID。APP重装后数值不变,root手机后是可以的,但一般普通用户不会这么做。
IOS:IOS 6以后禁止获取原生UDID,但可以通过uuid写入钥匙扣,从而获取自定义非系统原生UDID。即使用户重新加载APP,只要每次还这个钥匙扣,它就保持不变。
UUID:通用唯一标识符设备的唯一标识符。
安卓:APP重装后会有变化。
IOS:APP重装后会有变化。
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/27517.html