日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android 如何獲取設(shè)備唯一標(biāo)識(shí)

瀏覽:19日期:2022-09-20 09:40:46
一. 先簡(jiǎn)單總結(jié)一下比較常見(jiàn)的幾個(gè)解決方案的弊端:1. IMEI

Android 10 中官方明確說(shuō)明第三方應(yīng)用無(wú)法獲取到IMEI碼:Android 10 中的隱私權(quán)變更,

Android 10 以下的版本,需要申請(qǐng)READ_PHONE_STATE權(quán)限。

2. Android ID

Android ID 不具有真正的唯一性,

ROOT、刷機(jī)、恢復(fù)出廠設(shè)置、不同簽名的應(yīng)用等都會(huì)導(dǎo)致獲取的 Android ID 發(fā)生改變,

并且不同廠商定制的系統(tǒng)的BUG會(huì)導(dǎo)致不同的設(shè)備可能會(huì)產(chǎn)生相同的 Android ID。

3. MAC地址

Android 10 中 MAC地址具有隨機(jī)化的特征:Android 10 中的隱私權(quán)變更—MAC地址,

雖然目前大部分手機(jī)還不支持這個(gè)特性,但是隨著廠商的跟進(jìn),這個(gè)方案就會(huì)逐漸作廢

在上面這些設(shè)備自帶的標(biāo)識(shí)不夠滿(mǎn)足需求時(shí),我們就要采用另外的方法了。

二. uuid + 本地文件,實(shí)現(xiàn)一個(gè)通用解決方案1. 思路

啟動(dòng)APP時(shí),檢查并讀取根目錄下保存有uuid的文件,若沒(méi)有該文件,則視為一臺(tái)新設(shè)備,創(chuàng)建文件并寫(xiě)入uuid。

并且要確保卸載應(yīng)用時(shí),該文件不會(huì)被系統(tǒng)攜帶著刪除(這也是為什么要在根目錄下創(chuàng)建的原因)。

2. 解決手機(jī)訪問(wèn)SDK權(quán)限問(wèn)題

Android 6 以下,添加權(quán)限:

<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' /><uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE' />

Android 6 及其以上,則需要在此基礎(chǔ)上申請(qǐng)動(dòng)態(tài)權(quán)限。

Android 10 及其以上,文件存儲(chǔ)機(jī)制修改成了沙盒模式,即應(yīng)用只能訪問(wèn)自己沙盒下的文件和公共媒體文件。

“得益”于沙盒機(jī)制,應(yīng)用創(chuàng)建的文件屬于自己的沙盒,那么當(dāng)應(yīng)用卸載時(shí),也會(huì)隨之刪除。

目前可以添加以下一行代碼解決沙盒問(wèn)題:

<application ... android:requestLegacyExternalStorage='true'>

這樣我們就能在“根目錄”創(chuàng)建自己文件了。

3. 適配 Android 11

Android 11 會(huì)強(qiáng)制執(zhí)行沙盒模式,在這之前存儲(chǔ)權(quán)限可以簡(jiǎn)單的分為“禁止”和“允許”,在這之后存儲(chǔ)權(quán)限可以簡(jiǎn)單的分為“禁止”、“允許訪問(wèn)媒體文件”和“允許訪問(wèn)所有文件”。

“允許訪問(wèn)媒體文件”這是絕大多數(shù)應(yīng)用能夠申請(qǐng)到的,而“允許訪問(wèn)所有文件”只有文件管理類(lèi)應(yīng)用可以申請(qǐng)到。假如你不是該類(lèi)應(yīng)用但又申請(qǐng)了該權(quán)限,那么就會(huì)通不過(guò)Google Play的審核。

允許訪問(wèn)所有文件:android.permission.MANAGE_EXTERNAL_STORAGE

介紹到這兒,其實(shí)一個(gè)方案已經(jīng)出來(lái)了:直接申請(qǐng)“允許訪問(wèn)所有文件”權(quán)限,后果就是不能通過(guò)Google Play的審核。

另外還有一個(gè)辦法:我們暫時(shí)不升級(jí)SDK,針對(duì) Android 10 (SDK 29)來(lái)開(kāi)發(fā)應(yīng)用,這樣的話(huà)由于“向后兼容機(jī)制”,我們的應(yīng)用是能夠正常跑在 Android 11 系統(tǒng)上的。

4. Flutter 代碼實(shí)踐

import ’dart:io’;import ’package:uuid/uuid.dart’;// 本地持久化存儲(chǔ)uuid代碼實(shí)踐class Storage { static File file; // 入口 static Future<String> init() async { bool boolCreateFile = await createFile(); if (boolCreateFile) { String uuid = await readData(); return uuid; } else { await writeData(); String uuid = await readData(); return uuid; } } // 創(chuàng)建文件 static Future<bool> createFile() async { file = File(’/storage/emulated/0/uuid.ini’); // 指向根目錄下的文件uuid bool exists = await file.exists(); return exists; } // 寫(xiě)入數(shù)據(jù) static writeData() async { // 如果文件存在,會(huì)將原來(lái)的內(nèi)容覆蓋, 如果不存在,則創(chuàng)建文件 String uuid = await getUuid(); file.writeAsString(’$uuid’); } // 讀取文件 static Future<String> readData() async { try { String uuid = await file.readAsString(); return uuid; } catch (e) { return null; } } // 獲取uuid,采用的插件:uuid static Future<String> getUuid() async { Uuid uuidObj = Uuid(); String uuid = uuidObj.v1(); return uuid; }}

以上就是Android 如何獲取設(shè)備唯一標(biāo)識(shí)的詳細(xì)內(nèi)容,更多關(guān)于Android 獲取設(shè)備唯一標(biāo)識(shí)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美精品自拍| 欧美成人午夜| 国产精品美女久久久久久不卡| 老司机精品视频在线播放| 欧美国产另类| 久久久久伊人| 国产不卡一区| 蜜桃视频一区二区| 日韩大片在线观看| 欧美欧美黄在线二区| 欧美中文字幕一区二区| 国产欧美日韩精品高清二区综合区 | 免费视频国产一区| 欧美一级一区| 鲁大师影院一区二区三区| 久久中文字幕一区二区| 亚洲久草在线| 亚洲免费黄色| 亚洲女同一区| 亚洲精品护士| 国产激情一区| 久久精品国产68国产精品亚洲| 欧美日韩视频| 国产私拍福利精品视频二区| 国产精选久久| 久久久久久久久丰满| 亚洲欧美网站| 国产精品porn| 亚洲成人精选| 国产精品久久久久久av公交车| 欧美日韩视频网站| 一区二区三区国产盗摄| 91亚洲国产高清| 在线精品亚洲| av免费不卡国产观看| 国产精品普通话对白| 精品国产午夜| 日韩中文av| 99精品视频在线观看免费播放| 久久av在线| 国产传媒在线观看| 91成人精品在线| 亚洲欧洲一区二区天堂久久| 精品国产亚洲一区二区三区大结局| 国产免费成人| 欧美日韩免费观看视频| 欧美一区激情| 日韩中文字幕91| 狠狠爱成人网| 亚洲国产不卡| 九九精品调教| av最新在线| 国产aa精品| 精品视频网站| 日韩精品中文字幕吗一区二区| 日韩视频二区| 欧美日韩国产高清| 亚洲精品中文字幕乱码| 国产精品97| 欧美一级专区| 蜜臀a∨国产成人精品| 午夜在线播放视频欧美| 亚洲资源av| 亚洲影视一区| 天堂俺去俺来也www久久婷婷| 亚洲精品人人| 国产亚洲欧美日韩精品一区二区三区 | 在线国产一区二区| 国产精品字幕| 九色精品91| 蜜桃久久久久久久| 免费观看日韩电影| 日韩成人一级| 久久久久91| 人人精品亚洲| 国产精品一区二区三区四区在线观看| 国产成人精品福利| 日本精品不卡| 日本国产欧美| 国产99精品| 国产欧美日韩一区二区三区在线| 精品精品国产三级a∨在线| 激情综合激情| 国产精品视频一区二区三区综合| 国产精品99久久精品| 欧美精品一卡| 国产精品麻豆久久| 麻豆亚洲精品| 亚洲精品.com| 国产精品第一国产精品| 亚洲国产不卡| 久久男人av资源站| 亚洲精品高潮| 国内激情久久| 天堂√中文最新版在线| 国产探花在线精品| 亚洲乱码久久| 亚洲精品一二三区区别| 日韩88av| 色乱码一区二区三区网站| **爰片久久毛片| 日韩中文字幕麻豆| 国产在线不卡| 欧美黄色网页| www.九色在线| 在线天堂中文资源最新版| 国产精品亚洲四区在线观看| 亚洲精华国产欧美| 免费黄色成人| 激情久久久久久| 91精品婷婷色在线观看| 久久九九电影| 国产一区日韩欧美| 欧美福利专区| 爽好多水快深点欧美视频| 国产精品美女| 宅男在线一区| 亚洲高清av| 中日韩男男gay无套| 九九综合在线| 免费视频一区二区| 日韩激情一区二区| 色综合视频一区二区三区日韩| 日韩中文一区二区| 麻豆中文一区二区| 色黄视频在线观看| 五月综合激情| 欧美性www| 高清日韩中文字幕| 久久亚洲在线| 亚洲人成网77777色在线播放| 国产欧美高清视频在线| 国内揄拍国内精品久久| 久久精品国产68国产精品亚洲| 亚洲一区二区三区四区电影| 91精品日本| 亚洲免费福利| 午夜久久影院| 青青国产91久久久久久| 日韩一区二区三区免费| 亚洲三级网址| 久久高清免费| 国产乱人伦精品一区| 999久久久亚洲| 国产精品免费99久久久| 国产一区欧美| 精品不卡一区| 天堂av一区| 欧美日韩免费观看一区=区三区| 国产精品v亚洲精品v日韩精品| 欧美a级片一区| 日本久久综合| 亚洲精品黄色| 亚洲精品电影| 福利一区视频| 国产亚洲字幕| 亚洲精品1区| av在线最新| 成人在线视频区| 欧美一区二区三区高清视频 | 欧美+亚洲+精品+三区| 日本午夜精品| 日韩av不卡在线观看| 亚洲三级国产| 亚洲日本在线观看视频| 亚洲网站视频| 天堂成人国产精品一区| 国产精品美女久久久浪潮软件| 日韩一级欧洲| 视频一区二区国产| 日韩毛片一区| 六月丁香综合在线视频| 国产99在线| 国产农村妇女精品一二区| 涩涩涩久久久成人精品| 欧美一区二区三区久久精品| 国产精品亚洲综合在线观看| 国产一区二区三区不卡视频网站 | 日韩中文字幕一区二区三区| 91九色精品国产一区二区| 日韩成人亚洲| 亚洲www啪成人一区二区| 99热国内精品| 久久亚洲风情| 男女男精品网站| 91精品尤物| 91精品韩国| 激情欧美一区二区三区| 91精品精品| 中文字幕日韩亚洲| 欧美黑人做爰爽爽爽| 国产精品黑丝在线播放| 日韩精品一区二区三区免费观影| 久久人人88| 亚洲精品黄色| 福利一区二区三区视频在线观看| 国产91在线精品| 中文一区在线| 国产欧美午夜| 亚洲婷婷在线|