「轉(zhuǎn)」識(shí)別獨(dú)立安卓設(shè)備

「博客搬家」 原地址: CSDN 原發(fā)表時(shí)間: 2016-04-15

本文轉(zhuǎn)載自難題:識(shí)別獨(dú)立安卓設(shè)備 - 「A WING BY WIND」

今天碰巧朋友問(wèn)到我怎么識(shí)別獨(dú)立的安卓手機(jī)鲁豪,就花了一些時(shí)間琢磨了一下啄刹。其實(shí)這個(gè)問(wèn)題可以秒答,就是 IMEI 蚜枢。

TelephonyManager.getDeviceId();

這需要一個(gè)權(quán)限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

問(wèn)題如果這么簡(jiǎn)單就好了对竣,問(wèn)題在于:

  • 平板等其他設(shè)備利虫,無(wú) SIM 卡朗涩,因此無(wú) Telephony 模塊取视。
  • 有些設(shè)備恢復(fù)出廠設(shè)置的操作會(huì)清空 IMEI「水貨硬解通常會(huì)導(dǎo)致這個(gè)結(jié)果」
  • 我國(guó)許多山寨手機(jī)廠商偷懶鬼雀,刷機(jī)不改 IMEI顷窒,所以 IMEI 都是一樣的

因此其實(shí)問(wèn)題從這里才開始。網(wǎng)上能夠搜索到的解決方案有以下幾點(diǎn):

1. WIFI MAC

一個(gè)方案是優(yōu)先采用 IMEI,當(dāng) IMEI 相同時(shí)鞋吉,再比較 WIFI 的 MAC 地址鸦做。但如果手機(jī)沒有 WIFI 功能或者 WIFI 功能沒有開啟「飛行模式」,則無(wú)法獲取到 MAC 地址谓着。更加讓人惆悵的是泼诱,我國(guó)大山寨廠商實(shí)在是懶透了,無(wú)線網(wǎng)卡的 MAC 地址居然也不修改赊锚,不少自刷機(jī)的也是這病情「例如這個(gè)治筒,這個(gè)還有這個(gè)」。至于說(shuō)藍(lán)牙 MAC 地址就更別說(shuō)了舷蒲。IMEI 重復(fù)的病因耸袜,與 MAC 地址相同的其實(shí)是一個(gè)原因,都是刷機(jī)或山寨牲平,所以這「WIFI MAC」地址的方案其實(shí)算不上互補(bǔ)了堤框,必須另謀途徑。

2. Serial NO

另一個(gè)方案是用 serial NO 纵柿。這個(gè)值僅在 Android 2.3 版本以上才提供支持胰锌。通過(guò) adb 可以這樣查看:

adb shell getprop ro.serialno

代碼中可使用系統(tǒng)變量 android.os.Build.SERIAL 訪問(wèn)。如果這個(gè)值能夠取到這是僅次于 IMEI 的最好方法了藐窄。缺點(diǎn)是這個(gè)值在 2.2 及以下版本的 Android 系統(tǒng)不支持资昧。不過(guò)好在如今的安卓世界 2.2 及以下的占有率已經(jīng)越來(lái)越低了,翻新速度很快荆忍,因此這個(gè)值很值得一試格带。

3. Android ID

其實(shí)安卓系統(tǒng)提供了 Settings.Secure.ANDROID_ID 來(lái)獲取唯一設(shè)備號(hào)。

import android.provider.Settings.Secure;

private String android_id = Secure.getString(
                            getContext().getContentResolver(),
                            Secure.ANDROID_ID); 

但同樣 2.2 以前的系統(tǒng)支持得不好刹枉。這個(gè)值是系統(tǒng)初次啟動(dòng)后生成的叽唱,因此恢復(fù)出廠設(shè)置后這個(gè)值會(huì)變,導(dǎo)致觀測(cè)到的設(shè)備數(shù)虛高微宝。在手機(jī)刷機(jī)棺亭、重置頻繁的環(huán)境,這個(gè)值是不靠譜的蟋软。另外某大廠生產(chǎn)的設(shè)備居然有個(gè) BUG镶摘,這個(gè)值是會(huì)重復(fù)的「DROID2」,因此這個(gè)值還是別用為好岳守。

4. Generated UUID

最后還有一個(gè)自己生成 UUID 的辦法凄敢,保存這個(gè) ID,每次訪問(wèn)服務(wù)器時(shí)上傳湿痢,自己告訴系統(tǒng)自己是誰(shuí)涝缝。這個(gè)方法比所有硬件方法都更不靠譜,因?yàn)橹恍栊遁d軟件和清理數(shù)據(jù)就會(huì)導(dǎo)致這個(gè)值被刪除,從而產(chǎn)生新的 UUID拒逮,造成觀測(cè)到的設(shè)備數(shù)量虛高罐氨。更別說(shuō)刷機(jī)和恢復(fù)出廠設(shè)置了。這個(gè)方法非常適合用來(lái)統(tǒng)計(jì)軟件安裝次數(shù)滩援,而非獨(dú)立設(shè)備數(shù)岂昭。

5. 結(jié)論

綜上所述,目前為止我還沒找到非常完美的統(tǒng)計(jì)獨(dú)立設(shè)備的方案狠怨,尤其是在中國(guó)這個(gè)水貨、硬解邑遏、山寨佣赖、刷機(jī)市場(chǎng)泛濫和不規(guī)范的安卓世界,更是難上加難记盒。

但是反過(guò)來(lái)想憎蛤,是不是一臺(tái)完全刷新,安裝了全新的 ROM 的手機(jī)纪吮,就已經(jīng)不是原來(lái)的那臺(tái)手機(jī)了呢俩檬?統(tǒng)計(jì)獨(dú)立設(shè)備數(shù)的目的究竟是什么?如果要的是獨(dú)立活躍設(shè)備數(shù)碾盟,其實(shí)用自己生成的 UUID 已經(jīng)足夠棚辽,因?yàn)樵瓉?lái)使用的那個(gè) UUID 已經(jīng)失去活性,可以忽略了冰肴。對(duì)于 APP 開發(fā)者而言這個(gè)情況與用戶換了一臺(tái)手機(jī)屈藐,完全棄用舊手機(jī)的情況其實(shí)是一樣的。假如是采取活躍 UUID 的方式熙尉,則即使是使用 ANDROID_ID 或者自己生成的 UUID 都是可取的做法了联逻。

6. 文章來(lái)源:

  1. 難題:識(shí)別獨(dú)立安卓設(shè)備
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市检痰,隨后出現(xiàn)的幾起案子包归,更是在濱河造成了極大的恐慌,老刑警劉巖铅歼,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件公壤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡椎椰,警方通過(guò)查閱死者的電腦和手機(jī)境钟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俭识,“玉大人慨削,你說(shuō)我怎么就攤上這事。” “怎么了缚态?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵磁椒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我玫芦,道長(zhǎng)浆熔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任桥帆,我火速辦了婚禮医增,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘老虫。我一直安慰自己叶骨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布祈匙。 她就那樣靜靜地躺著忽刽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夺欲。 梳的紋絲不亂的頭發(fā)上跪帝,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音些阅,去河邊找鬼伞剑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛市埋,可吹牛的內(nèi)容都是我干的纸泄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腰素,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼聘裁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起弓千,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衡便,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后洋访,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镣陕,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年姻政,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呆抑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汁展,死狀恐怖鹊碍,靈堂內(nèi)的尸體忽然破棺而出厌殉,到底是詐尸還是另有隱情,我是刑警寧澤侈咕,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布公罕,位于F島的核電站,受9級(jí)特大地震影響耀销,放射性物質(zhì)發(fā)生泄漏楼眷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一熊尉、第九天 我趴在偏房一處隱蔽的房頂上張望罐柳。 院中可真熱鬧,春花似錦狰住、人聲如沸张吉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至士飒,卻和暖如春查邢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酵幕。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工扰藕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人芳撒。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓邓深,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親笔刹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芥备,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評(píng)論 25 707
  • 這又是一場(chǎng)無(wú)比別致,美輪美奐的的唯美清新畫面舌菜。如果說(shuō)在《秒速五厘米》中盛大的櫻花飄落是剎那間的萬(wàn)紫千紅萌壳,那在《言葉...
    獨(dú)立行走的魚閱讀 551評(píng)論 0 2
  • 一束青藤絡(luò)滿枝,蜿蜒交錯(cuò)卻相癡日月。 不知是何相思意袱瓮,不斂枝丫不聞棲。 君不見樹影斑駁三花葉爱咬, 誠(chéng)而難欺是知音尺借。 翠葉...
    海縣清一閱讀 288評(píng)論 0 3
  • 我有一個(gè)女兒精拟,她從三歲起每天晚飯后收拾餐桌上的碗筷燎斩,女兒嘴甜虱歪,哄的人開心,遇到別人的錯(cuò)誤瘫里,輕易不會(huì)妥協(xié)实蔽,轉(zhuǎn)眼間那個(gè)...
    曉寧灑滿陽(yáng)光閱讀 262評(píng)論 0 1
  • 大四上學(xué)期那一段時(shí)間莫名其妙出現(xiàn)了:世界這么大,我想去看看谨读。 熟悉社交網(wǎng)絡(luò)的我們局装,突然覺得大學(xué)都快要畢業(yè)了,因?yàn)殄X...
    我是一直流浪的豬閱讀 256評(píng)論 18 4