Android 6.0 藍牙搜索不到設(shè)備原因,MIUI權(quán)限申請機制方法
為提供更高的數(shù)據(jù)保護 Android6.0版本上增加了關(guān)于Wifi和藍牙的權(quán)限。
藍牙搜索到設(shè)備需要用到定位服務(wù),所以在開發(fā)中 targetSdkVersion 大于等于23(6.0) 需要在代碼中進行權(quán)限獲取
需要在配置文件中申請兩個權(quán)限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在代碼中調(diào)用時先進行權(quán)限判斷,如果沒有權(quán)限就去申請權(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, "沒有權(quán)限,請求權(quán)限");
return;
}
Log.d(TAG, "已有定位權(quán)限");
}
//做下面該做的事
}
調(diào)用ActivityCompat.requestPermissions()之后會有一個回調(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, "開啟權(quán)限permission granted!");
//做下面該做的事
} else {
Log.d(TAG, "沒有定位權(quán)限,請先開啟!");
}
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
網(wǎng)上有人說,當彈出權(quán)限確認框之后,用戶點擊確定或者拒絕時才會調(diào)用進行回調(diào):onRequestPermissionsResult
但是在小米手機MIUI上并不是這樣的。MIUI上是這樣的:權(quán)限管理那里設(shè)置應(yīng)用的定位權(quán)限為拒絕或者詢問時checkAccessFinePermission != PackageManager.PERMISSION_GRANTED,說明沒有定位權(quán)限 。如果設(shè)置為允許,checkAccessFinePermission ==PackageManager.PERMISSION_GRANTED,說明有定位權(quán)限。
當設(shè)置拒絕時去ActivityCompat.requestPermissions ,并沒有彈出權(quán)限使用確認框,而是直接回調(diào):沒有權(quán)限
當設(shè)置詢問時去ActivityCompat.requestPermissions ,并沒有彈出權(quán)限使用確認框,而是直接回調(diào):已有權(quán)限,然后在調(diào)用藍牙代碼的時候彈出確認框。當點擊允許時權(quán)限管理那里變成了允許,當點擊拒絕時,權(quán)限管理那里變成拒絕,但是下次再進行權(quán)限檢查時返回 已有定位權(quán)限。權(quán)限管理那里明明是拒絕的啊,怎么就有定位權(quán)限了?感覺這是MIUI的一個bug,我的系統(tǒng)是:MIUI 8 6.11.3開發(fā)版。
以上這篇Android6.0 藍牙搜索不到設(shè)備原因,MIUI權(quán)限申請機制方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Android在類微信程序中實現(xiàn)藍牙聊天功能的示例代碼
- Android實現(xiàn)藍牙(BlueTooth)設(shè)備檢測連接
- Android基于ibeacon實現(xiàn)藍牙考勤功能
- Native.js獲取監(jiān)聽開關(guān)等操作Android藍牙設(shè)備實例代碼
- android藍牙控制PC端代碼分享
- Android藍牙庫FastBle的基礎(chǔ)入門使用
- android實現(xiàn)主動連接和被動連接的藍牙聊天功能
- android實現(xiàn)藍牙app代碼
- android實現(xiàn)手機與單片機藍牙模塊通信
- Android 獲取藍牙Mac地址的正確方法
- Android如何實現(xiàn)藍牙配對連接功能
相關(guān)文章
Android提高之BLE開發(fā)Android手機搜索iBeacon基站
這篇文章主要介紹了BLE開發(fā)Android手機搜索iBeacon基站,需要的朋友可以參考下2014-08-08
Android自動測試工具Monkey的實現(xiàn)方法
本文主要介紹Android Monkey 實現(xiàn)方法,Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法,具有非常重要的參考價值,希望對小伙伴有所幫助2016-07-07
使用Kotlin+RocketMQ實現(xiàn)延時消息的示例代碼
這篇文章主要介紹了使用Kotlin+RocketMQ實現(xiàn)延時消息的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
Android組合式自定義控件實現(xiàn)購物車加減商品操作
這篇文章主要介紹了Android組合式自定義控件實現(xiàn)購物車加減商品操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11

