Android Q適配之IMEI替換為Android
前置工作:
項目配置升到對應(yīng)的29版本
compileSdkVersion: 29,
buildToolsVersion: ‘29.0.0',
minSdkVersion : 19,
targetSdkVersion : 29,
javaVersion : JavaVersion.VERSION_1_8
升級到Android Q后的權(quán)限提示界面
老版本獲取IMEI的方法:
public static String getIMEI(Context context) { String deviceId = null; try { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); deviceId = tm.getDeviceId(); if (deviceId == null || "".equals(deviceId)) { return getLocalMacAddress(context); } } catch (Exception e) { e.printStackTrace(); if (deviceId == null || "".equals(deviceId)) { return getLocalMacAddress(context);//獲取Mac地址,在Android 9 P版本中,地址會隨機變化,不可用作唯一標(biāo)識,可去掉。 } } return deviceId; }
Android Q獲取IMEI方法
public static String getIMEI(Context context) { String deviceId = null; try { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { deviceId = Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); } else { // request old storage permission if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return null; } deviceId = tm.getDeviceId(); } if (deviceId == null || "".equals(deviceId)) { return getLocalMacAddress(context); } } catch (Exception e) { e.printStackTrace(); if (deviceId == null || "".equals(deviceId)) { return getLocalMacAddress(context); } } return deviceId; }
谷歌官方有聲明:手機恢復(fù)出廠設(shè)置,Android ID會重置。
如果用戶拒絕權(quán)限,也還是會獲取不到設(shè)備標(biāo)識。
所以具體優(yōu)化需自行結(jié)合開發(fā)情景,有更好的建議的道友可以評論補充說明^ - ^…
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:詳解Android v1、v2、v3簽名(小結(jié))
欄 目:Android
下一篇:Android自定義View實現(xiàn)投票進度條
本文標(biāo)題:Android Q適配之IMEI替換為Android
本文地址:http://mengdiqiu.com.cn/a1/Android/9069.html
您可能感興趣的文章
- 01-10Android自定義View之繪制圓形頭像功能
- 01-10Android實現(xiàn)雙擊返回鍵退出應(yīng)用實現(xiàn)方法詳解
- 01-10android實現(xiàn)記住用戶名和密碼以及自動登錄
- 01-10android實現(xiàn)簡單計算器功能
- 01-10Android 友盟第三方登錄與分享的實現(xiàn)代碼
- 01-10android實現(xiàn)指紋識別功能
- 01-10Emoji表情在Android JNI中的兼容性問題詳解
- 01-10Android實現(xiàn)圓形漸變加載進度條
- 01-10android開發(fā)環(huán)境中SDK文件夾下的所需內(nèi)容詳解
- 01-10android異步消息機制 源碼層面徹底解析(1)


閱讀排行
本欄相關(guān)
- 01-10Android自定義View之繪制圓形頭像功能
- 01-10Android實現(xiàn)雙擊返回鍵退出應(yīng)用實現(xiàn)方
- 01-10android實現(xiàn)簡單計算器功能
- 01-10android實現(xiàn)記住用戶名和密碼以及自動
- 01-10C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法
- 01-10Android 友盟第三方登錄與分享的實現(xiàn)代
- 01-10android實現(xiàn)指紋識別功能
- 01-10如何給Flutter界面切換實現(xiàn)點特效
- 01-10Android實現(xiàn)圓形漸變加載進度條
- 01-10Emoji表情在Android JNI中的兼容性問題詳
隨機閱讀
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實例總結(jié)
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置