无法做到,包括后端语言也无法在 Web 中获取 UUID。
基于安全问题,JavaScript 无法获取到设备的 UUID,也没有接口可以获取 UUID。
如果 JavaScript 可以轻松做到,安卓设备的 APP 权限岂不是花瓶?!
TelephonyManager telMgr = (TelephonyManager) localContext
getSystemService(ContextTELEPHONY_SERVICE);
String imsi = telMgrgetSN();
MTK的。
其他手机没了解过。只有Phone才有权限去读取。你可以跟一下
按照正常的获取运行时权限流程走,但是不d出授权框,就直接走回调的拒绝授权了。
解决过程:
刚开始以为是勾选了不再提示的原因,后来卸载重装,还是一样的问题。去权限管理列表查看,发现列表中没有我申请的权限(写SD卡),于是怀疑是不是权限名称打错了。后来仔细查看AndroidManifestxml文件,发现还真是!!!
错误写法是这样子的:
一开始没仔细看,还真没注意这家伙有什么特别的,后来和别的权限对比,发现好像少了点什么。
正确写法:
发现了吗?错误写法的前面少了androidpermission。最坑的是AndroidStudio并没有报错,logcat也没有看到有任何报错信息!!!以后写代码还是要仔细呀!
UUID是15中新增的一个类,在javautil下,用它可以产生一个号称全球唯一的ID。
import javautilUUID;
public class Test {
public static void main(String[] args) {
UUID uuid = UUIDrandomUUID();
Systemoutprintln (uuid);
}
}
是可以直接用的。
这种方法是,以一些特定的信息为基础,生成设备的唯一标识。
首先,算法角度,常用的有UUID、摘要两种。这两种算法都是以特定的数据为基础,生成一个唯一的、固定长度的字符串。这里选择UUID。
其次,计算的基础数据,建议选择divice_id和android_id。原因是,1)这两个标识虽然不能抵抗wipe *** 作,但受用户的行为影响比较小;2)如果正常获取,都是唯一的;③如果不能正常获取,结果也是固定的,不会频繁变化。
再次,优先级的考虑。从这两个标识的缺点考虑。
1)device_id。
①不能标识非手机设备,例如Pad。
②权限问题,因为用户的反感。
③获取异常,厂商定制系统中存在的bug,致使返回结果为空,或者为一串“0”或“”。
④对于双卡双待手机,会返回两个device_id。
2)android_id。
①Android23以前,系统Bug,导致不同的设备产生相同的结果:9774d56d682e549c。
②有些可能返回null。
③设备差异:对于CDMA设备,与device_id返回相同的值。
综合考虑,device_id不能标识某些pad,以及用户的权限问题,是我们不能接受的,所以优先使用android_id。对于android_id返回为null的情况,再考虑使用device_id。
最后,当android_id和device_id都返回异常的情况,我们可以随机生成一个UUID。
以上就是关于JS怎么能实现获取设备的UUID,比如手机访问这个地址可以获取它的UUID。全部的内容,包括:JS怎么能实现获取设备的UUID,比如手机访问这个地址可以获取它的UUID。、android 如何获取到手机的机器码、安卓环境下,使用plus.device.uuidd出授权d框,确定授权后获取不到值,要如何处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)