android获取固定uuid,稳定获取Android设备唯一代码(UUID)的解决方案
對(duì)于App云平臺(tái)系統(tǒng),如何唯一標(biāo)識(shí)移動(dòng)設(shè)備非常重要. 否則,每次用戶在設(shè)備上卸載并重新安裝應(yīng)用程序時(shí),后端系統(tǒng)只能將用戶視為全新用戶.
在Android上識(shí)別設(shè)備的唯一性. 因?yàn)檫@個(gè)圓圈太亂了,所以設(shè)備本身的任何標(biāo)識(shí)都不能直接用作設(shè)備的唯一標(biāo)識(shí). iOS受到系統(tǒng)強(qiáng)大限制的獨(dú)特認(rèn)可. 目前,唯一可以部分滿足條件的部分是IDFA,但這要求您的App本身必須嵌入廣告.
當(dāng)許多開發(fā)人員使用Jiguang Push時(shí),他們有一個(gè)問題: Jiguang Push如何唯一地標(biāo)識(shí)設(shè)備. 本文分析了Aurora Push如何盡可能唯一地標(biāo)識(shí)設(shè)備.
Jiguang Push使用RegistrationID作為設(shè)備上安裝的App的標(biāo)識(shí). Aurora Push希望“盡可能”確保設(shè)備的唯一性,即使RegistrationID盡可能唯一.
關(guān)于RegistrationID,積光的正式文件具有以下定義:
啟動(dòng)第一個(gè)應(yīng)用程序后,將與JPush SDK集成的應(yīng)用程序成功注冊(cè)到JPush服務(wù)器時(shí),JPush服務(wù)器將把device-RegistrationID的唯一標(biāo)識(shí)返回給客戶端. JPush SDK將以廣播的形式將RegistrationID發(fā)送到應(yīng)用程序.
有了此標(biāo)識(shí),App編程可以將此RegistrationID保存到其自己的應(yīng)用程序服務(wù)器,然后根據(jù)RegistrationID將消息或通知推送到設(shè)備.
如果未卸載該應(yīng)用,則會(huì)直接覆蓋并安裝該應(yīng)用,Android和iOS上的RegistrationID的值不會(huì)更改.
如果該應(yīng)用已卸載然后再次安裝:
在Android上,由于中國(guó)存在大量假冒設(shè)備,因此無(wú)法使用可被視為唯一標(biāo)識(shí)符的常規(guī)IMEI,Mac地址和AndroidID值,因?yàn)檫@些值可能在一批設(shè)備中相同的值.
Aurora的基本思想是:
生成DeviceID并將其保存到“設(shè)置”,“外部存儲(chǔ)”. 依靠本地存儲(chǔ). 卸載并重新安裝應(yīng)用程序后,這些存儲(chǔ)中的DeviceID仍然是同一設(shè)備. 這個(gè)理論上解決了90%的不變性問題. 在DeviceID之外添加補(bǔ)充規(guī)則: 根據(jù)IMEI,MAC地址,AndroidID的值全面判斷它是否是舊設(shè)備.
根據(jù)實(shí)際操作條件和收集的反饋不斷調(diào)整特定的邏輯細(xì)節(jié). 大多數(shù)邏輯都可以在服務(wù)器端進(jìn)行調(diào)整.
由于iOS系統(tǒng)設(shè)計(jì)限制了設(shè)備的唯一標(biāo)識(shí),因此Jiguang一直使用Device Token作為標(biāo)識(shí),并且因?yàn)镴iguang Push本身需要Device Token的值才能運(yùn)行.
在iOS 9版本之后,每次卸載后重新安裝都會(huì)導(dǎo)致設(shè)備令牌更改,因此對(duì)于Jiguang后端,只能將其識(shí)別為新用戶.
新版的Jiguang SDK添加了IDFA選項(xiàng). 集成并初始化SDK時(shí),可以設(shè)置IDFA值,以便Jiguang背景會(huì)首先根據(jù)IDFA值識(shí)別用戶如何查設(shè)備碼,并在有可能的情況下在卸載后重新安裝該應(yīng)用程序,還可以將其標(biāo)識(shí)為舊設(shè)備.
IDFA是廣告標(biāo)識(shí)符,由iOS專門設(shè)計(jì),用于唯一標(biāo)識(shí)用于廣告跟蹤的用戶. 在iOS設(shè)備上,設(shè)備->隱私->廣告頁(yè)面上有一個(gè)設(shè)置項(xiàng): 限制廣告跟蹤. 默認(rèn)未選中,即關(guān)閉狀態(tài),沒有限制. 用戶可以選擇限制廣告跟蹤. 除了設(shè)置外,還有一個(gè)按鈕: 恢復(fù)廣告標(biāo)識(shí)符...如果用戶單擊此按鈕,則IDFA值將更改.
默認(rèn)情況下,廣告跟蹤沒有限制,并且可以采用IDFA值. 并且當(dāng)用戶不單擊“還原廣告徽標(biāo)”時(shí)如何查設(shè)備碼,此值將不會(huì)更改. 這樣就可以達(dá)到唯一識(shí)別設(shè)備并跟蹤用戶的目的.
但是,請(qǐng)注意,不一定要啟用IDFA. 它要求您的應(yīng)用程序具有廣告功能,然后才能使用. 否則,Apple可能會(huì)在審核過程中發(fā)現(xiàn)并拒絕.
有關(guān)Apple App的IDFA要求,請(qǐng)參閱此處的說(shuō)明:
由于在JPush SDK注冊(cè)完成后獲得了RegistrationID,因此在調(diào)用SDK API以獲得RegistrationID的值時(shí)需要注意. 它并不總是立即可用.
例如,在iOS上,建議在監(jiān)視通知kJPFNetworkDidLoginNotification后獲取代碼中RegistrationID的值.
Android擁有寫設(shè)置的權(quán)限,該設(shè)置可以將數(shù)據(jù)寫到設(shè)置中,等效于用作永久存儲(chǔ)點(diǎn). 外部存儲(chǔ)通常指的是SDCard,現(xiàn)在越來(lái)越多的手機(jī)直接與手機(jī)一起使用,就像iPhone一樣.
如果這兩點(diǎn)的數(shù)據(jù)都被破壞,則實(shí)際上不會(huì)通過本地DeviceID存儲(chǔ)確認(rèn)為唯一設(shè)備. 但是,服務(wù)器還可以通過IMEI / AndroidID靈活地確認(rèn)設(shè)備是否相同.
從上方復(fù)制
本文來(lái)自電腦雜談,轉(zhuǎn)載請(qǐng)注明本文網(wǎng)址:
http://www.pc-fly.com/a/ruanjian/article-288610-1.html
總結(jié)
以上是生活随笔為你收集整理的android获取固定uuid,稳定获取Android设备唯一代码(UUID)的解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高阻态是0还是1_超实用买鞋指南!宽脚、
- 下一篇: Android 8.0一下热点启动