簡述Android手機常用的裝置ID

2021-10-03 03:08:01 字數 1809 閱讀 3539

1、裝置id:

簡單來說就是一串符號(或者數字)類似於我們的身份證號,對映現實中硬體裝置。排除特殊情況(模擬器等),裝置id和裝置是一一對應的,我們稱之為「唯一裝置id(unique device identifier)

2、裝置id的作用:

關於裝置id的作用,大概可以分為下面幾點:

3、對於android平台而言,沒有穩定的api可以讓開發者獲取到這樣的裝置id,這樣對id的獲取便不是很友好,加之各種模擬器,獲取不到的情況比比皆是。

下面我們簡單介紹一下常用的裝置id及其獲取方法

1、android_id

android id 是獲取門檻最低的,不需要任何許可權,64bit 的取值範圍,唯一性算是很好的了。

但是不足之處也很明顯:

1、刷機、root、恢復出廠設定等會使得 android id 改變;

2、android 8.0之後,android id的規則發生了變化:

對於公升級到8.0之前安裝的應用,android_id會保持不變。如果解除安裝後重新安裝的話,android_id將會改變。

對於安裝在8.0系統的應用來說,android_id根據應用簽名和使用者的不同而不同。android_id的唯一決定於應用簽名、使用者和裝置三者的組合。

兩個規則導致的結果就是:

獲取方法如下:

string android_id = settings.system.

getstring

(context.

getcontentresolver()

, settings.system.android_id)

;

2、imei
而且,android 10.0 將徹底禁止第三方應用獲取裝置的imei, 即使申請了 read_phone_state 許可權。

獲取方法如下:

try

catch

(exception e)

3、mac

獲取mac位址也是越來越困難了,

android 6.0以後通過 wifimanager 獲取到的mac將是固定的:02:00:00:00:00:00 ,

再後來連讀取 /sys/class/net/wlan0/address 也獲取不到了。

如今只剩下面這種方法可以獲取(沒有開啟wifi也可以獲取到):

public

static string getwifimac()

while

(enumeration.

hasmoreelements()

)}}catch

(exception e)

return"";

}

4、oaid

簡介:因傳統的移動終端裝置標識如國際移動裝置識別碼(imei)等已被部分國家認定為使用者隱私的一部分,並存在被篡改和冒用的風險,所以在android 10及後續版本中非廠商系統應用將無法獲取imei、mac等裝置資訊。無法獲取imei會在使用者行為統計過程中對裝置識別產生一定影響。

近日移動安全聯盟針對該問題聯合國內手機廠商推出補充裝置標準體系方案,選擇oaid欄位作為imei等的替代字段。oaid欄位是由中國信通院聯合華為、小公尺、oppo、vivo等廠商共同推出的裝置識別字段,具有一定的權威性,可滿足使用者行為統計的使用場景。(可能存在的問題:部分廠商還沒有支援,不過隨著更新版本,越來越多的手機已經納入到相容範圍了)

具體獲取方法

android手機系統adb常用的命令

要使用adb命令,手機需要開啟usb debug。安裝軟體 adb install apk檔名稱.apk 重新安裝該軟體 adb install r apk檔名稱.apk 解除安裝apk軟體 adb uninstall apk包名.apk 檢視手機上的執行日誌,此項可以用來查錯 adb logcat...

基於Android的智慧型手機安全衛士的設計與實現

隨著智慧型機的誕生,手機終端的上網功能越來越普及,人們也逐漸離不開智慧型機和3g業務。但是,與此同時網路安全事件也隨之走向手機終端,各種網銀 軟體 中毒事件等等都開始日益影響手機使用者的正常生活,手機終端的安全問題與電腦客戶端發生的安全問題 相比是有過之而無不及的,從而手機安全問題成為了業界人士和手...

Android 常用手機資訊獲取

android中與 功能相關的類是 telephonymanager 此類中定義了很多常量,以下分類說明 獲取以下資訊需要在androidmanifest.xml中指定許可權 一 資料連線狀態 獲取資料連線狀態 int getdatastate 獲取資料活動狀態 int getdataactivit...