Android獲取裝置唯一標識碼
阿新 • • 發佈:2018-12-30
話不多說,先貼程式碼
/**獲取裝置唯一標識碼
* @param context 上下文
* @return 裝置唯一標識碼
*/
public static String getUDID(Context context) {
String udid = AppConfig.getUDID(context, null);
if (udid == null || "".equals(udid.trim())) {
TelephonyManager telephonyManager =(TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
udid = telephonyManager.getDeviceId();
if (udid == null || "".equals(udid.trim()))
udid = Build.SERIAL;
//非手機裝置
if (udid == null || "".equals(udid.trim())) {
//兩種都獲取不到,隨機生成
Random random = new Random();
int rand = random.nextInt(100000);
long curTimeMills = System.currentTimeMillis();
udid = curTimeMills + "," + rand;
}
AppConfig.setUDID(context, udid);
}
return udid;
}
主要邏輯就是:
1、先通過TelephonyManager獲取裝置ID,絕大部分裝置都可以成功獲取ID;
2、在獲取不到的情況下,再獲取uild.SERIAL;
3、依然獲取不到,則通過隨機數生成。