static var deviceUniqueIdentifier : String
Description描述
A unique device identifier It is guaranteed to be unique for every
device (Read Only) You can use it (for example) to store high scores in a central server
一个唯一的设备标识符。这是保证为每一台设备是唯一的(只读)。可以使用它在中央服务器来储存高分表。
最近在做一个OA考勤项目,里面有个需求是一个账号只允许绑定一台设备, 这就需要将设备唯一标识码与账号绑定在一起,咋一听 这还不So Easy啊,直接获取deviceID 不就好了。。。
咋一 *** 作也挺好。 可到了大面积的群体用户测试环节发现了几个问题。
简言之就是如果你的手机需要考虑Android9以上的设备,你就没办法通过获取系统提供的API完全的获取到设备唯一标识码,根据Android文档 唯一标识符最佳做法 你也许可以这样
呃 这个特殊运营商许可 和这个 READ_PRIVILEGED_PHONE_STATE 好像都不是我们一般的安卓应用能获取的到的。
想要能Android9以上又能不受到刷机,格式化的影响。 就只能 使用移动安全联盟(MSA)提出的补充设备标识
是由 移动安全联盟 提出的,包含以下三个标识:
缺点就是:并不是所有的品牌商都兼容了, 而且需要导入他们对应的包 。 这部分可参考 Android 10获取设备标识方案探究 这篇文章
特点: 如果格式化或者刷机,这个设备ID会更改(这个也是合理的)。
完善:可以在第一次生成后放入到内部存储和外部存储,下次进入先从内部存储获取,如果没有在去外部存储比较(App卸载,内部存储就没了)。 如果在没有就生成一个
WEB这东西,本来就是跨平台的东西,对于不同平台就有不同的浏览器,不同厂家的浏览器又不太一样。
尤其这种比较偏的底层接口。
2就拿开发Android的WEB浏览器常用的WebView,就本身N个版本,接口改了又改。
你的网页还要跨平台,不管Android,还是WindowsPhone,适应于他们的变化有多复杂,自己要三思。
3做那种混合型的App来让用户浏览自己的网站,内嵌WebView,通过JS和App交互,获取你需要的IMEI等等信息。
4单纯Web页面是无法获取IMEI,除非W3C修订JavaScript标准,增加接口,并让浏览器厂商开始支持。
5目前想获取IMEI,必须是app和Web页面相结合方式。
就如当前有个hbuilder开发工具,DCloud开发的。
6可以调用手机系统API,原理类似于Java反射技术。
他们封装的比较好。可以直接通过js调用。
7当然最后发布的不是真正的纯Web页面,是一个app安装包。
这里面的语法不是在任何浏览器都能运行的。
但发布的安装包,内部封装好的浏览器是可以支持相应的js方法。
8web请求字段的UserAgent 段里只有 *** 作系统版本,浏览器类型,浏览器内核版本这些信息,不会有其他信息。
9至于ip,只要连接到web服务器,服务器就知道了,mac地址也是。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)