本文档主要对影响比较大的部分進行简单总结内容并不全面;
本文档基于和(华为的有点过时);
限制应用访问不可重设的设备识别码,如 IMEI、序列號等系统应用不受影响。
在低于AndroidQ的系统上没问题
在AndroidQ及以上的系统上运行时:
使用AndroidId代替缺点是应用签署密钥或用户(如系统恢复出产设置)不同返回的Id不同。与实际测试结果相符
经实际测试:相同签名密钥的不同应用androidId相同,不同签名的应用androidId不同恢复出产设置或升级系統没测。
通过硬件信息拼接缺点是还是不能保证唯一。
经测试:似乎与方案一比更稳定不受密钥影响,但非官方建议没安全感。
但是:在华为mate20(Api-28)上需要到设置中打开横幅通知;原生AndroidQ(beta6)上有效。
后台应用要获取位置信息需要动态申請权限
targetSdkVersion<Q
,没影响申请权限时系统默认会加上后台位置权限
(/sdcard)
文件,否则抛异常
优点:不用申请读写权限;
缺点:随应用卸载而删除;
会打开系统的攵件目录由用户自己选择允许访问的目录,不用申请WRITE/READ_EXTERNAL_STORAGE
权限
执行上述代码后会出现类似如下图界面,点击‘允许访问“DuoKan”’按钮
允许叻之后通过onActivityResult()
的intent.getData()
得到该目录的Uri,通过Uri可获取子目录和文件这种方式的缺点是应用重装后权限失效,即使可以保存了这个Uri也没用