最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

android 唯一碼生成建議

2023-06-13 15:11 作者:翼618  | 我要投稿

最終我的解決方案如下:

? ? 1 獲取手機(jī)型號(hào),拼接一串隨機(jī)數(shù)字加上日期,得出一條隨機(jī)數(shù)字

? ? 2 生成一個(gè)固定地址的實(shí)體文件到手機(jī)里面,保存這一條隨機(jī)數(shù)字

? ? 3 每次都讀取這個(gè)固定的實(shí)體文件,來(lái)比對(duì)設(shè)備是否是唯一


優(yōu)點(diǎn):免除了一切不穩(wěn)定因素,因?yàn)槭亲约荷傻囊淮當(dāng)?shù)字

? ? ? 穩(wěn)定取值,因?yàn)槎际怯幸粋€(gè)文件存儲(chǔ)的,每次都用方法來(lái)取值比對(duì)?會(huì)出現(xiàn)取的值不一樣的情況很多


缺點(diǎn):1 生成的這一串?dāng)?shù)字包含信息沒(méi)有 實(shí)際取設(shè)備值來(lái)的有意義

? ? ? 2 用戶如果把那個(gè)文件給刪除掉了,唯一碼也就沒(méi)了不過(guò)相比之下概率并不是太高


下面是我處理這個(gè)問(wèn)題的一些測(cè)試結(jié)果,僅供參考

首先來(lái)講講常用的MAC IMEI UUID? ?這3個(gè)值 很多人都會(huì)拿他來(lái)做唯一碼? 也許以前是可行的 不過(guò)現(xiàn)在版本多了 情況比較復(fù)雜

1 受權(quán)限影響 你有可能拿不到

2 受wifi影響 mac碼會(huì)存在可能性變動(dòng) 因機(jī)型 和版本有所區(qū)別

? ? ? ? ? ? ?A 連接成功的Mac碼

? ? ? ? ? ? ?B 無(wú)法鏈接wifi的MAC碼?

? ? ? ? ? ? ?C 未打開(kāi)wifi下的MAC碼?

3 高版本手機(jī)取不到的情況很多

? ? ? ? ? ? ? ? ? ??

總的來(lái)說(shuō) 比較極端的情況下 一臺(tái)手機(jī)能有3個(gè)MAC碼 ,也嘗試過(guò) 強(qiáng)制打開(kāi)wift的情況下獲取,既然狀態(tài)保持一致了 那取到的值

應(yīng)該也是一致才對(duì),但是后來(lái)發(fā)現(xiàn) 有鏈接到wifi的和只打開(kāi) 不鏈接的 mac碼居然存在差異。


還有的情況是第一次取Mac碼由于其他客觀因素導(dǎo)致獲取不到,然后后幾次取到了,再與第一次數(shù)據(jù)匹配的時(shí)候就會(huì)對(duì)不上


更多的情況是由于網(wǎng)絡(luò)情況不一致,經(jīng)常取不到一樣的mac碼,作為唯一碼老是對(duì)不上這個(gè)比較頭疼


如果你非要用這個(gè)的話,我建議不是每次都獲取一遍,是程序只運(yùn)行一次,保存下來(lái) 然后每次都取這個(gè)值對(duì)比

例如寫(xiě)成一個(gè)實(shí)體文件寫(xiě)到手機(jī)里面,然后讀取這個(gè)文件值





下面寫(xiě)上對(duì)應(yīng)的獲取方法


? ? /**

? ? ?* 這里有漏洞 wift不打開(kāi) 部分機(jī)型獲取不到? 換成一種 兼容度更好的方法了

? ? ?*/

? ?public String getMac() {

? ? ? ?mac = "";

? ? ? ?String str = "";

? ? ? ?try {

? ? ? ? ? ?Process pp = Runtime.getRuntime().exec(

? ? ? ? ? ? ? ? ? ?"cat /sys/class/net/wlan0/address ");

? ? ? ? ? ?InputStreamReader ir = new InputStreamReader(pp.getInputStream());

? ? ? ? ? ?LineNumberReader input = new LineNumberReader(ir);


? ? ? ? ? ?for (; null != str; ) {

? ? ? ? ? ? ? ?str = input.readLine();

? ? ? ? ? ? ? ?if (str != null) {

? ? ? ? ? ? ? ? ? ?mac = str.trim();// 去空格

? ? ? ? ? ? ? ? ? ?SharedPreferencesUtil.putString(mContext, "mac", mac);

? ? ? ? ? ? ? ? ? ?break;

? ? ? ? ? ? ? ?} else {

? ? ? ? ? ? ? ? ? ?if (SharedPreferencesUtil.getString(mContext, "mac", "").equals("")) {

? ? ? ? ? ? ? ? ? ? ? ?toggleWiFi(this, true);

? ? ? ? ? ? ? ? ? ? ? ?flag = true;

? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ?}

? ? ? ? ? ?}

? ? ? ?} catch (IOException ex) {

? ? ? ? ? ?// 賦予默認(rèn)值

? ? ? ? ? ?mac = "";

? ? ? ? ? ?//丟到緩存去? 不過(guò)建議寫(xiě)一個(gè)實(shí)體文件保存吧? 不然APP被干掉了 你數(shù)據(jù)也就丟了

? ? ? ? ? ?SharedPreferencesUtil.putString(mContext, "mac", mac);?

? ? ? ? ? ?ex.printStackTrace();



? ? ? ? ? ?Log.e("LoginActivity", "" + ex);


? ? ? ?}

? ? ? ?return SharedPreferencesUtil.getString(mContext, "mac", "");

? ?}



---------------------------------------------------------------------



IMEI


這個(gè)多卡多待直接暴死了,一張卡一個(gè)IMEI碼,取不到的情況也存在有

萬(wàn)一用戶換了卡估計(jì)又會(huì)換掉一個(gè),但是實(shí)際上用戶用的還是同一臺(tái)手機(jī),

所以說(shuō)拿來(lái)當(dāng)唯一碼會(huì)比較頭疼



-------------------------------------------------------------



UUID



//? 獲取手機(jī)的UUID

public String getPhoneSign() {

? ? StringBuilder deviceId = new StringBuilder();

? ? // 渠道標(biāo)志

? ? deviceId.append("a");

? ? try {

? ? ? ? String uuid = getUUID();

? ? ? ? if (!TextUtils.isEmpty(uuid)) {

? ? ? ? ? ? deviceId.append("id");

? ? ? ? ? ? deviceId.append(uuid);

? ? ? ? ? ? return deviceId.toString();

? ? ? ? }

? ? } catch (Exception e) {

? ? ? ? e.printStackTrace();

? ? ? ? deviceId.append("id").append(getUUID());

? ? }

? ? return deviceId.toString();

}



也是表面上的唯一 取不到 復(fù)數(shù)幾個(gè)不一樣的情況很多?


----------------------------------------------------



到了最后,發(fā)現(xiàn)各種取值都不固定 都不穩(wěn)定,要面對(duì)的是M多的手機(jī)機(jī)型

從4.0到9.0的系統(tǒng)版本,一套方案解決所有問(wèn)題比較困難,還有不能拿所有

用戶去做嘗試,被投訴的很慘。


建議:

? ? ?頭鐵可以嘗試一下用各種方式取值吧,相信會(huì)有更加完善的處理方案,因?yàn)椴皇亲钔晟频姆桨?,這里僅提供解決思路


android 唯一碼生成建議的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
莆田市| 格尔木市| 白城市| 蚌埠市| 都昌县| 洛宁县| 宣恩县| 田林县| 高青县| 安阳市| 余干县| 敦煌市| 将乐县| 盘山县| 马公市| 新郑市| 赫章县| 大埔县| 锦屏县| 枣庄市| 许昌市| 浑源县| 平顶山市| 治县。| 霸州市| 巩义市| 晋江市| 榆中县| 嘉峪关市| 龙门县| 历史| 青川县| 新津县| 石门县| 凤翔县| 阿城市| 天长市| 永登县| 凤山县| 台安县| 东乌珠穆沁旗|