因為很多軟體都有這個功能,所以說是非常重要的,比如說乙個使用者賬號只能繫結3個裝置,那麼得到裝置的唯一標示將是非常重要的。
我猜那麼你肯定首先想到的就是得到裝置imei,
telephonymanager telephonymanager = (telephonymanager) context.getsystemservice(context.telephony_service);
string imei= telephonymanager.getdeviceid();
通過getdeviceid
獲取的為imei
和meid
和esn
這種方法我以前也在用,但是用了後你會發現,它其實有很多缺點:
需要android.permission.read_phone_state許可權,有可能被使用者拒絕授權。
有的手機可能拿不到deviceid。
其實我們可以自己組建唯一標識,比如說用build類獲取手機的所有配置資訊。
主機板: build.board;
系統啟動程式版本號: build.bootloader;
系統定製商:build.brand;
cpu指令集:build.cpu_abi;
cpu指令集2:build.cpu_abi2;
設定引數:build.device;
顯示屏引數:build.display;
無線電韌體版本:build.getradioversion(;
硬體識別碼:build.fingerprint;
硬體名稱:build.hardware;
host:build.host;
修訂版本列表:build.id;
硬體製造商:build.manufacturer;
版本:build.model;
硬體序列號:build.serial;
手機製造商:build.product;
描述build的標籤:build.tags;
time:build.time;
builder型別:build.type;
user:build.user;
所以我後面寫了這個方法,目前來看能保持唯一性,直接獲取手機所有的資訊並且組成乙個新的字串。
public static string getdeviceid() catch (exception e)
return deviceid;
}
Android獲取手機唯一標識
1.許多應用都有這樣的需求獲取你的手機唯一標識,當你解除安裝軟體重新安裝的時候也要保證這個唯一標識不變,所以只能根據手機硬體的去獲取到唯一標識.2.有好多跟硬體相關都會有各種許可權問題。一種很簡單直接獲取到read phone state的許可權,讀取到裝置串號.3.如果是android6.0系統需...
Android唯一標識
github位址 android中能作為唯一標識有四個,但付出一定的代價還是還是能改變,所以目前android中沒有絕對的唯一標識。1 裝置id imei 需要授予許可權 telephonymanager telephonymanager telephonymanager getsystemserv...
Android獲取唯一標識(唯一序列號)
有很多場景和需求你需要用到手機裝置的唯一識別符號。在android中,有以下幾種方法獲取這樣的id。1.the imei 僅僅只對android手機有效 1 2 telephonymanager telephonymgr telephonymanager getsystemservice telep...