⑴ android imei獲取
隨著android系統不斷升級,android設備的imei號已經越來越難獲取了。網上一些推薦會用meid、androidid來代替imei號。但是因為項目推廣需要比對渠道那邊回傳imei號來確認新增。
發現部分機型渠道(eg:快手)可以獲取到而我們獲取不到,導致無法確認新增。最終在TelephonyManager中找到getDeviceSoftwareVersion()方法。可以變相實現獲取imei號(但也會有getDeviceSoftwareVersion獲取不到的機型,不過驗證渠道那邊也獲取不到了)。
public static String getIMEI() {
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);
String imei = null;
if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
imei = telephonyManager.getImei();
if (!TextUtils.isEmpty(imei)) {
return imei;
} else {
String softwareVersion = getDeviceSoftwareVersion();
if (!TextUtils.isEmpty(softwareVersion) && softwareVersion.length() > 14) {
String imeiHead = softwareVersion.substring(0, 14);
imei = imeiHead + luhn(imeiHead);
return imei;
} else {
return null;
}
}
} else {
return telephonyManager.getDeviceId();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return imei;
}
/**
* Luhn演算法
* 根據號碼獲取校驗位
*
* @param cardNumber
* @return
*/
public static int luhn(String cardNumber) {
int totalNumber = 0;
for (int i = cardNumber.length() - 1; i >= 0; i -= 2) {
int tmpNumber = calculate(Integer.parseInt(String.valueOf(cardNumber.charAt(i))) * 2);
if (i == 0) {
totalNumber += tmpNumber;
} else {
totalNumber += tmpNumber + Integer.parseInt(String.valueOf(cardNumber.charAt(i - 1)));
}
其實是因為getDeviceSoftwareVersion和getImei()拼接規則只有末位兩個數不相同,而imei的末位數可以通過luhn演算法獲取,從而拼接成imei值(自測有效)。
但是畢竟還是有部分機型獲取不到imei,可以使用oaid來補充說明。
如果是自己app內部做唯一標識的話可以用meid、androidid或deviceid來代替imei
public static String getUniqueId() {
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);
if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
⑵ 手機設備號
手機設備號即手機設備碼,英文縮寫為:IMEI,即國際移動設備身份碼,由15位數字組成。通俗的講,手機的設備號就是手機的身份證,這是出廠時就分配好的,在全世界的移動設備中是唯一的。
但是需要說明的是,並不是每個手機只有一個設備號,對於雙卡雙待手機來說,它有兩個設備號,即兩個身份證。每個卡位對應一個設備號,不因所裝手機卡不同而改變。
安卓手機查看IMEI號的方法:
第一步:在【待機界面】點擊【電話】,進入撥號界面,在【撥號界面】輸入【*#06#】,如圖:
以上就是安卓手機查看IMEI號的方法介紹是適合所有安卓平台手機的,有需要安卓手機IMEI號的小夥伴們可以按照此安卓手機IMEI號查看方法來獲取自己安卓手機的IMEI號。
⑶ 怎麼改安卓手機的IMEI串號
手機IMEI串號對於每一部手機來說,都是唯一的,該串號在驗證手機是否為真品,
以及其它一些特定場合具有十分重要的作用。下面就來看一下如何獲取手機的IMEI串號。
在手機撥號盤界面輸入【*#06#】 ,就可以獲取當前手機的IMEI串號。
安卓手機查看通過手機參數進行查看。點擊「啟動程序」按鈕,然後點擊「設置」→「關於手機」→「狀態消息」,就可以查看到本機IMEI號。
imei串碼方面 可以分單串號和雙串號 可用於串號丟失 做業務等等
⑷ 安卓手機怎麼查看IMEI號
vivo手機IMEI碼查詢方法:
1、打開撥號盤,在撥號界面輸入 *#06# 即可;
2、進入手機設置--系統管理/更多設置--關於手機中,可查詢到;
(部分機型進入手機設置--我的設備--更多參數中可查詢到)
3、手機包裝盒上會有一張標注手機信息的的貼紙,在上面查看到IMEI碼;
4、手機包裝盒中的「重要信息與保修卡」冊子,貼有手機的IMEI碼。