Android 6.0 藍(lán)牙搜索不到設(shè)備原因,MIUI權(quán)限申請(qǐng)機(jī)制方法
為提供更高的數(shù)據(jù)保護(hù) Android6.0版本上增加了關(guān)于Wifi和藍(lán)牙的權(quán)限。
藍(lán)牙搜索到設(shè)備需要用到定位服務(wù),所以在開(kāi)發(fā)中 targetSdkVersion 大于等于23(6.0) 需要在代碼中進(jìn)行權(quán)限獲取
需要在配置文件中申請(qǐng)兩個(gè)權(quán)限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在代碼中調(diào)用時(shí)先進(jìn)行權(quán)限判斷,如果沒(méi)有權(quán)限就去申請(qǐng)權(quán)限:
private void requestPermission() { if (Build.VERSION.SDK_INT >= 23) { int checkAccessFinePermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION); if (checkAccessFinePermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_PERMISSION_ACCESS_LOCATION); Log.d(TAG, "沒(méi)有權(quán)限,請(qǐng)求權(quán)限"); return; } Log.d(TAG, "已有定位權(quán)限"); } //做下面該做的事 }
調(diào)用ActivityCompat.requestPermissions()之后會(huì)有一個(gè)回調(diào)
@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case Common.REQUEST_PERMISSION_ACCESS_LOCATION: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "開(kāi)啟權(quán)限permission granted!"); //做下面該做的事 } else { Log.d(TAG, "沒(méi)有定位權(quán)限,請(qǐng)先開(kāi)啟!"); } } } super.onRequestPermissionsResult(requestCode, permissions, grantResults); }
網(wǎng)上有人說(shuō),當(dāng)彈出權(quán)限確認(rèn)框之后,用戶點(diǎn)擊確定或者拒絕時(shí)才會(huì)調(diào)用進(jìn)行回調(diào):onRequestPermissionsResult
但是在小米手機(jī)MIUI上并不是這樣的。MIUI上是這樣的:權(quán)限管理那里設(shè)置應(yīng)用的定位權(quán)限為拒絕或者詢問(wèn)時(shí)checkAccessFinePermission != PackageManager.PERMISSION_GRANTED,說(shuō)明沒(méi)有定位權(quán)限 。如果設(shè)置為允許,checkAccessFinePermission ==PackageManager.PERMISSION_GRANTED,說(shuō)明有定位權(quán)限。
當(dāng)設(shè)置拒絕時(shí)去ActivityCompat.requestPermissions ,并沒(méi)有彈出權(quán)限使用確認(rèn)框,而是直接回調(diào):沒(méi)有權(quán)限
當(dāng)設(shè)置詢問(wèn)時(shí)去ActivityCompat.requestPermissions ,并沒(méi)有彈出權(quán)限使用確認(rèn)框,而是直接回調(diào):已有權(quán)限,然后在調(diào)用藍(lán)牙代碼的時(shí)候彈出確認(rèn)框。當(dāng)點(diǎn)擊允許時(shí)權(quán)限管理那里變成了允許,當(dāng)點(diǎn)擊拒絕時(shí),權(quán)限管理那里變成拒絕,但是下次再進(jìn)行權(quán)限檢查時(shí)返回 已有定位權(quán)限。權(quán)限管理那里明明是拒絕的啊,怎么就有定位權(quán)限了?感覺(jué)這是MIUI的一個(gè)bug,我的系統(tǒng)是:MIUI 8 6.11.3開(kāi)發(fā)版。
以上這篇Android6.0 藍(lán)牙搜索不到設(shè)備原因,MIUI權(quán)限申請(qǐng)機(jī)制方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Android在類微信程序中實(shí)現(xiàn)藍(lán)牙聊天功能的示例代碼
- Android實(shí)現(xiàn)藍(lán)牙(BlueTooth)設(shè)備檢測(cè)連接
- Android基于ibeacon實(shí)現(xiàn)藍(lán)牙考勤功能
- Native.js獲取監(jiān)聽(tīng)開(kāi)關(guān)等操作Android藍(lán)牙設(shè)備實(shí)例代碼
- android藍(lán)牙控制PC端代碼分享
- Android藍(lán)牙庫(kù)FastBle的基礎(chǔ)入門使用
- android實(shí)現(xiàn)主動(dòng)連接和被動(dòng)連接的藍(lán)牙聊天功能
- android實(shí)現(xiàn)藍(lán)牙app代碼
- android實(shí)現(xiàn)手機(jī)與單片機(jī)藍(lán)牙模塊通信
- Android 獲取藍(lán)牙Mac地址的正確方法
- Android如何實(shí)現(xiàn)藍(lán)牙配對(duì)連接功能
相關(guān)文章
Android實(shí)現(xiàn)底部對(duì)話框BottomDialog彈出實(shí)例代碼
本篇文章主要介紹了Android實(shí)現(xiàn)底部對(duì)話框BottomDialog代碼。這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-03-03Android轉(zhuǎn)場(chǎng)效果實(shí)現(xiàn)示例淺析
這篇文章主要為大家介紹了Android轉(zhuǎn)場(chǎng)效果實(shí)現(xiàn)示例淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android studio4.1更新后出現(xiàn)的問(wèn)題詳解
這篇文章主要介紹了Android studio4.1更新后出現(xiàn)的問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Android檢測(cè)url地址是否可達(dá)的兩種方法
今天小編就為大家分享一篇Android檢測(cè)url地址是否可達(dá)的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Android Jetpack組件庫(kù)LiveData源碼深入探究
LiveData是Jetpack組件的一部分,更多的時(shí)候是搭配ViewModel來(lái)使用,相對(duì)于Observable,LiveData的最大優(yōu)勢(shì)是其具有生命感知的,換句話說(shuō),LiveData可以保證只有在組件( Activity、Fragment、Service)處于活動(dòng)生命周期狀態(tài)的時(shí)候才會(huì)更新數(shù)據(jù)2022-09-09Android實(shí)現(xiàn)繪制LocationMarkerView圖的示例代碼
LocationMarker是運(yùn)動(dòng)軌跡上Start、End, 以及整公里點(diǎn)上筆者自定義繪制的一個(gè)MarkerView。這篇文章主要介紹了Android實(shí)現(xiàn)繪制LocationMarkerView圖的示例代碼,希望對(duì)大家有所幫助2023-02-02Android TextView高級(jí)顯示技巧實(shí)例小結(jié)
這篇文章主要介紹了Android TextView高級(jí)顯示技巧,結(jié)合實(shí)例形式總結(jié)分析了Android TextView控件進(jìn)行文字與圖片顯示的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10Android簡(jiǎn)單實(shí)現(xiàn)屏幕下方Tab菜單的方法
這篇文章主要介紹了Android簡(jiǎn)單實(shí)現(xiàn)屏幕下方Tab菜單的方法,簡(jiǎn)單分析了Android實(shí)現(xiàn)tab菜單所涉及的界面布局及功能相關(guān)操作技巧,需要的朋友可以參考下2016-08-08