導航:首頁 > 操作系統 > android讀取imei

android讀取imei

發布時間:2023-12-28 18:41:17

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碼。

閱讀全文

與android讀取imei相關的資料

熱點內容
程序員三高 瀏覽:178
pythonfiddle 瀏覽:215
韓信分油總共有幾種演算法 瀏覽:941
程序員思維方案 瀏覽:970
編譯環境要裝c盤嗎 瀏覽:648
單片機生成pwm 瀏覽:206
線上租車有什麼app 瀏覽:908
php程序修改 瀏覽:684
下列能查找文件或文件夾的操作是 瀏覽:314
遙感科學與技術演算法待遇 瀏覽:136
cad標注半徑命令 瀏覽:367
打卡領購app邀請碼怎麼填 瀏覽:336
編程訪問許可權沖突 瀏覽:152
桌面運維如何轉伺服器運維 瀏覽:627
tomcat如何設置伺服器 瀏覽:679
php編譯支持mysql 瀏覽:817
mir4手游安卓版怎麼玩國際服 瀏覽:23
伺服器程序怎麼刪除 瀏覽:657
阿里年薪70萬程序員名單照片 瀏覽:575
android定製輸入法 瀏覽:758