Android高版本API方法如何在低版本系統(tǒng)上做兼容性處理淺析
前言
在最近的開發(fā)中需要獲取到SIM卡的網(wǎng)絡(luò)狀態(tài),在源碼中看到一個(gè)方法:
TelephonyManager tm =(TelephonyManager)context.getSystemService(TELEPHONY_SERVICE); state =tm.getDataNetworkType();
但是報(bào)錯(cuò)了Call requires API level 24 (current min is 21): android.telephony.TelephonyManager#getDataNetworkType
Android 版本更替,新的版本帶來(lái)新的特性,新的方法。
新的方法帶來(lái)許多便利,但無(wú)法在低版本系統(tǒng)上運(yùn)行,如果兼容性處理不恰當(dāng),APP在低版本系統(tǒng)上,運(yùn)行時(shí)將會(huì)crash。
處理方法
1.添加@RequiresApi(api = Build.VERSION_CODES.N)
2.添加@TargetApi(Build.VERSION_CODES.N)
3.添加@SuppressLint("NewApi")
4.添加運(yùn)行時(shí)SDK版本判斷
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { tm.getDataNetworkType(); }
5.在低版本通過(guò)其他方法實(shí)現(xiàn)該功能
總結(jié)
第一、第二、第三種方法只是能編譯通過(guò),到了低于API24的系統(tǒng)運(yùn)行,將會(huì)引發(fā) java.lang.NoSuchMethodError
。
正確的做法是添加運(yùn)行時(shí)SDK版本判斷,判斷為低版本時(shí)添加其他方法實(shí)現(xiàn)該功能
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Android實(shí)現(xiàn)復(fù)制Assets文件到SD卡
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)復(fù)制Assets文件到SD卡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12android studio實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器(無(wú)bug)
這篇文章主要為大家詳細(xì)介紹了android studio實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08Android布局——Preference自定義layout的方法
PreferenceActivity是一個(gè)方便設(shè)置管理的界面,但是對(duì)于界面顯示來(lái)說(shuō)比較單調(diào),所以自定義布局就很有必要了,下面與大家分享下Preference中自定義layout的方法2013-06-06Android實(shí)現(xiàn)底部圖片選擇Dialog
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)底部圖片選擇Dialog,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Spi機(jī)制在Android開發(fā)的應(yīng)用示例詳解
這篇文章主要為大家介紹了Spi機(jī)制在Android開發(fā)的應(yīng)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Android使用 Spinner控件實(shí)現(xiàn)下拉框功能
Spinner是android的一種控件,用它我們可以實(shí)現(xiàn)下拉框。下面通過(guò)實(shí)例代碼給大家介紹Android使用 Spinner控件實(shí)現(xiàn)下拉框功能,感興趣的朋友一起看看吧2018-08-08Android編程之防止反編譯的實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程之防止反編譯的實(shí)現(xiàn)方法,涉及Android針對(duì)運(yùn)行環(huán)境、簽名及程序相關(guān)信息的獲取與判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android 實(shí)現(xiàn)監(jiān)聽的四種方法詳解實(shí)例代碼
這篇文章主要介紹了Android 實(shí)現(xiàn)監(jiān)聽的方法詳解實(shí)例代碼的相關(guān)資料,這里整理了四種方法,需要的朋友可以參考下2016-10-10Android Rsa數(shù)據(jù)加解密的介紹與使用示例
RSA是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。想起自己曾經(jīng)使用過(guò)的Rsa非對(duì)稱加密算法,閑下來(lái)總結(jié)一下。方便自己和大家以后使用的時(shí)候參考借鑒。下面來(lái)一起看看吧。2016-09-09