偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

了解Android設(shè)備唯一標(biāo)識以及在開發(fā)中如何安全地使用這些標(biāo)識符

移動開發(fā) Android
OAID(Open Anonymous Device Identifier,開放匿名設(shè)備標(biāo)識符)是移動廣告行業(yè)為了遵循用戶隱私保護(hù)政策而推出的一種設(shè)備標(biāo)識符。它的主要目的是在保護(hù)用戶隱私的前提下,為廣告主和開發(fā)者提供一種替代IMEI、Android ID等傳統(tǒng)設(shè)備標(biāo)識符的方式,以便進(jìn)行廣告跟蹤、效果衡量和個性化推送等操作。

Android設(shè)備唯一標(biāo)識在開發(fā)中常被用于識別設(shè)備、進(jìn)行用戶行為分析、實現(xiàn)個性化推送等功能。出于隱私和安全考慮,一些標(biāo)識碼(如IMEI和MAC地址)的獲取和使用可能受到一定的限制。在開發(fā)過程中,需要遵守相關(guān)的隱私政策和法規(guī),確保用戶數(shù)據(jù)的安全和合規(guī)性。

Android設(shè)備的唯一標(biāo)識主要包括以下幾種:

  1. 「IMEI(國際移動設(shè)備識別碼)」:IMEI是International Mobile Equipment Identity的縮寫,即通常所說的手機(jī)序列號、手機(jī)“串號”。它是由15位數(shù)字組成的“電子串號”,相當(dāng)于移動電話的身份證,用于在移動電話網(wǎng)絡(luò)中識別每一部獨立的手機(jī)等移動通信設(shè)備。IMEI碼由GSM(全球移動通信協(xié)會)統(tǒng)一分配,授權(quán)BABT(英國通信認(rèn)證管理委員會)審受。
  2. 「MEID」:MEID是移動設(shè)備識別碼的另一種形式,主要用于CDMA制式的手機(jī)。
  3. 「MAC地址」:MAC地址是媒體訪問控制地址,也稱為物理地址或硬件地址,用于在網(wǎng)絡(luò)中唯一標(biāo)識一個網(wǎng)絡(luò)設(shè)備。
  4. 「ANDROID_ID」:ANDROID_ID是Android系統(tǒng)為設(shè)備分配的一個唯一ID,主要用于應(yīng)用程序內(nèi)部識別設(shè)備。
  5. 「UUID(通用唯一識別碼)」:UUID是一個軟件建構(gòu)的標(biāo)準(zhǔn),亦為開放軟件基金會組織在分布式計算環(huán)境領(lǐng)域的一部分。其目的,是讓分布式系統(tǒng)中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。
  6. 「OAID」:OAID(Open Anonymous Device Identifier,開放匿名設(shè)備標(biāo)識符)是移動廣告行業(yè)為了遵循用戶隱私保護(hù)政策而推出的一種設(shè)備標(biāo)識符。

IMEI

IMEI(國際移動設(shè)備識別碼)是一個重要的設(shè)備標(biāo)識符,用于唯一地識別每一部移動電話。IMEI碼由15位數(shù)字組成,每部移動電話的IMEI碼都是獨一無二的。識別碼可以幫助運營商和制造商追蹤設(shè)備的來源和狀態(tài),以及在需要時進(jìn)行遠(yuǎn)程控制。

在Android應(yīng)用中獲取IMEI:

  1. 「添加權(quán)限」:在應(yīng)用的AndroidManifest.xml文件中添加讀取電話狀態(tài)的權(quán)限。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 「獲取TelephonyManager」:獲取一個TelephonyManager實例。
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
  1. 「獲取IMEI」:使用TelephonyManager的getDeviceId()方法可以獲取設(shè)備的IMEI。
String imei = telephonyManager.getDeviceId();

注意點:

  • 「隱私政策」:IMEI是設(shè)備的敏感信息,在獲取和使用IMEI之前,須確保應(yīng)用遵守了相關(guān)的隱私政策和法規(guī)。需要在應(yīng)用的隱私政策中明確告知用戶將收集和使用IMEI,并且獲得用戶的明確同意。
  • 「權(quán)限變更」:從Android 6.0(API 級別 23)開始,運行時權(quán)限模型引入后,需要在運行時請求READ_PHONE_STATE權(quán)限。
  • 「可用性」:在某些情況下,例如模擬器或者沒有SIM卡的設(shè)備,getDeviceId()可能會返回null或者一個非標(biāo)準(zhǔn)的值。在獲取IMEI后,應(yīng)該檢查它是否為null或有效。
  • 「兼容性」:對于Android 10(API 級別 29)及以上版本,由于隱私保護(hù)的增強(qiáng),非系統(tǒng)應(yīng)用可能無法訪問IMEI。在這種情況下可能需要尋找其他方式來標(biāo)識設(shè)備或用戶。
  • 「Google Play 政策」:確保應(yīng)用遵守Google Play的政策,特別是在處理用戶數(shù)據(jù)方面。不當(dāng)?shù)臄?shù)據(jù)收集和使用可能導(dǎo)致應(yīng)用被從Google Play中移除。

MEID

MEID是移動設(shè)備識別碼的一種形式,主要用于CDMA制式的手機(jī)或通訊平板。類似于每部CDMA設(shè)備的“身份證號”,通過這個識別碼,網(wǎng)絡(luò)端可以對設(shè)備進(jìn)行跟蹤和監(jiān)管。在移動通信網(wǎng)絡(luò)中,MEID是識別移動設(shè)備的重要依據(jù),有助于確保設(shè)備的合法性和在網(wǎng)絡(luò)中的正常使用。MEID也可以用于設(shè)備追蹤、保修驗證等目的。

在Android應(yīng)用中獲取MEID:

  1. 「添加權(quán)限」:在AndroidManifest.xml文件中添加讀取電話狀態(tài)的權(quán)限。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 「獲取TelephonyManager」:獲取一個TelephonyManager實例。
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
  1. 「獲取MEID」:使用TelephonyManager的getMeid()方法可以獲取設(shè)備的MEID。
//8.0以后,區(qū)分IMEI和MEID
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    Log.d(TAG, "getImei:" + manager.getImei());
    Log.d(TAG, "getMeid:" + manager.getMeid());
} else {
    //8.0之前:不區(qū)分IMEI和MEID,在安卓8.0廢棄
    Log.d(TAG, "getDeviceId:" + manager.getDeviceId());
}

MAC地址

MAC地址是指設(shè)備的物理地址,也叫做硬件地址。MAC地址是網(wǎng)絡(luò)設(shè)備在網(wǎng)絡(luò)中的唯一標(biāo)識,由一串英文加數(shù)字的字符串組成,具有全球唯一性。每個網(wǎng)絡(luò)設(shè)備,包括手機(jī)、電腦、路由器等,都有一個唯一的MAC地址。這個地址不會隨網(wǎng)絡(luò)或位置的更改而變化,因此能夠準(zhǔn)確地標(biāo)識特定設(shè)備。

在Android設(shè)備上,可以通過特定的路徑查看MAC地址。一般可以在“設(shè)置”菜單中找到“關(guān)于手機(jī)”或“關(guān)于設(shè)備”選項,選擇“狀態(tài)消息”或“網(wǎng)絡(luò)狀態(tài)”等子菜單找到“WLAN MAC地址”或類似的選項。

Android MAC地址是設(shè)備在網(wǎng)絡(luò)中的唯一標(biāo)識符,對于設(shè)備通信和網(wǎng)絡(luò)管理都起著關(guān)鍵作用,但也應(yīng)注意其潛在的安全風(fēng)險。

在Android設(shè)備上,有多種方法可以獲取MAC地址。以下是兩種常見的方法:

方法一:通過WifiManager獲取

  1. 通過getSystemService(Context.WIFI_SERVICE)方法獲取到WifiManager的實例。
  2. 使用getConnectionInfo()方法獲取到連接信息。
  3. 調(diào)用getMacAddress()方法獲取MAC地址。

方法二:通過NetworkInterface獲取

  1. 獲取設(shè)備上的網(wǎng)絡(luò)接口列表。通過調(diào)用NetworkInterface.getNetworkInterfaces()方法實現(xiàn),方法會返回一個枚舉類型的網(wǎng)絡(luò)接口列表。
  2. 遍歷這個接口列表,找到以太網(wǎng)接口。
  3. 在找到以太網(wǎng)接口后,通過該接口的getHardwareAddress()方法獲取MAC地址。

從Android 6.0(API級別23)開始,運行時權(quán)限引入后,需要在運行時請求訪問網(wǎng)絡(luò)狀態(tài)的權(quán)限。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Android_id

ANDROID_ID是Android系統(tǒng)提供的一個用于標(biāo)識設(shè)備的唯一ID。是一個64位的十六進(jìn)制字符串,由16個字符組成,是設(shè)備特定的標(biāo)識符,可以用于唯一地標(biāo)識一個Android設(shè)備。

在Android 8.0(API 26級)和更高版本的平臺上,64位數(shù)字(表示為十六進(jìn)制字符串),對于應(yīng)用程序簽名密鑰、用戶和設(shè)備的每個組合都是唯一的。ANDROID_ID的值由簽名密鑰和用戶限定范圍。如果在設(shè)備上執(zhí)行出廠重置或APK簽名密鑰發(fā)生更改,則該值可能會更改。

在低于Android 8.0(API 26級)的平臺版本中,用戶首次設(shè)置設(shè)備時隨機(jī)生成的64位數(shù)字(表示為十六進(jìn)制字符串),在用戶設(shè)備的使用壽命內(nèi)應(yīng)保持不變。在具有多個用戶的設(shè)備上,每個用戶都顯示為一個完全獨立的設(shè)備,因此ANDROID_ID值對每個用戶都是唯一的。

ANDROID_ID的生成是基于設(shè)備的硬件信息和操作系統(tǒng)的版本號等,在同一臺設(shè)備上是固定的,但是在不同的設(shè)備上是不同的。ANDROID_ID是在設(shè)備首次啟動時生成的。存儲在設(shè)備的/data/data/com.android.providers.settings/databases/settings.db數(shù)據(jù)庫中的secure表中。在設(shè)備首次啟動時,系統(tǒng)會檢查secure表是否存在一個名為android_id的條目,如果不存在,則會生成一個唯一的ANDROID_ID,并插入到secure表中。如果設(shè)備被恢復(fù)出廠設(shè)置,則會重新生成一個新的ANDROID_ID。

雖然ANDROID_ID是唯一的,但不是100%可靠的,因為可以被某些應(yīng)用程序修改或篡改。如果重置設(shè)備,ANDROID_ID也會被重置。刷機(jī)或者更換了ROM,ANDROID_ID也會被重置。

//在 Android 8.0(API 級別 26)及更高版本中,SSAID(AndroidID) 提供了一個在由同一開發(fā)者簽名密鑰簽名的應(yīng)用之間通用的標(biāo)識符。
//當(dāng)設(shè)備恢復(fù)出廠設(shè)置,或者Root過的話,OTA升級系統(tǒng),值會被改變
public static  void getAndroidId(Context context){
    String androidId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(),Settings.Secure.ANDROID_ID);
    Log.d(TAG, "androidId:" + androidId);
}

UUID

UUID(Universally Unique Identifier,全局唯一標(biāo)識符)是一種軟件建構(gòu)的標(biāo)準(zhǔn),亦為開放軟件基金會(OSF)組織在分布式計算環(huán)境(DCE)領(lǐng)域的一部分。UUID是一個128位的字符串,通常以32個十六進(jìn)制數(shù)字表示,按照8-4-4-4-12的36個字符格式分成五段,形式為8-4-4-4-12的32個字符,例如:550e8400-e29b-41d4-a716-446655440000。

UUID的主要目的是提供唯一性,減少沖突的可能性,并且不依賴于中央注冊機(jī)構(gòu)來分配標(biāo)識符。由于UUID的生成算法使用了一些隨機(jī)的元素(如當(dāng)前的時間戳和機(jī)器標(biāo)識符),因此它可以在不同的系統(tǒng)和應(yīng)用程序中生成幾乎不重復(fù)的標(biāo)識符。

//在大多數(shù)非廣告用例中,可用于跟蹤已注銷用戶的偏好設(shè)置,這是建議的解決方案
public static void getUUID(){
    String uniqueID = UUID.randomUUID().toString();
    Log.d(TAG, "UUID:" + uniqueID);
}

OAID

OAID(Open Anonymous Device Identifier,開放匿名設(shè)備標(biāo)識符)是移動廣告行業(yè)為了遵循用戶隱私保護(hù)政策而推出的一種設(shè)備標(biāo)識符。它的主要目的是在保護(hù)用戶隱私的前提下,為廣告主和開發(fā)者提供一種替代IMEI、Android ID等傳統(tǒng)設(shè)備標(biāo)識符的方式,以便進(jìn)行廣告跟蹤、效果衡量和個性化推送等操作。

OAID具有以下特點:

  1. 「匿名性」:OAID是匿名的,不會直接關(guān)聯(lián)到用戶的個人信息,從而保護(hù)了用戶的隱私。
  2. 「可重置性」:用戶可以在設(shè)備的設(shè)置中選擇重置OAID,廣告主和開發(fā)者就無法繼續(xù)追蹤該設(shè)備。
  3. 「合規(guī)性」:由于OAID遵循了用戶隱私保護(hù)政策,使用OAID進(jìn)行廣告跟蹤和數(shù)據(jù)分析更符合法規(guī)要求。

在Android設(shè)備上,OAID通常由廣告服務(wù)提供商或設(shè)備制造商提供。開發(fā)者需要集成相應(yīng)的SDK(軟件開發(fā)工具包)來獲取OAID。開發(fā)者可以將其用于廣告跟蹤、推送通知等目的。

具體使用可以查看各廠商的說明文檔手冊:

小米OAID: https://dev.mi.com/distribute/doc/details?pId=1634
OPPO OAID: https://open.oppomobile.com/new/developmentDoc/info?id=12344
華為OAID: https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/oaid-0000001050783198

考慮到隱私和安全的問題,如果應(yīng)用不需要IMEI,MEID來進(jìn)行關(guān)鍵功能,最好避免收集和使用??梢钥紤]使用其他方法來標(biāo)識設(shè)備或用戶,比如使用ANDROID_ID,OAID或者生成一個UUID來在應(yīng)用中標(biāo)識設(shè)備。

責(zé)任編輯:武曉燕 來源: 沐雨花飛蝶
相關(guān)推薦

2009-12-08 19:29:10

PHP生成唯一標(biāo)識符

2022-07-17 06:57:02

時間戳唯一標(biāo)識符

2017-04-21 12:30:45

AndroidAndroid O設(shè)備標(biāo)識符

2023-05-28 00:09:21

2009-09-23 10:41:10

對象標(biāo)識符Hibernate

2012-02-08 14:01:18

HibernateJava

2009-08-26 14:01:18

C#標(biāo)識符

2022-10-12 15:15:56

數(shù)字孿生物聯(lián)網(wǎng)

2011-03-14 10:17:40

JavaScript

2013-12-30 10:43:15

云計算移動數(shù)據(jù)云安全

2009-10-27 14:20:37

VB.NET動態(tài)標(biāo)識符

2016-05-11 14:16:20

2024-03-13 08:23:08

分布式系統(tǒng)隨機(jī)

2018-03-21 07:08:40

2014-09-22 15:14:04

2023-10-11 17:38:43

Linux磁盤數(shù)據(jù)

2010-01-15 18:17:39

VB.NET動態(tài)標(biāo)識

2023-08-22 08:52:14

Go零值標(biāo)識符

2023-04-01 10:32:36

2025-01-26 10:35:42

Go語言類型
點贊
收藏

51CTO技術(shù)棧公眾號