1、AndroidMainifest.xml權限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
2、在代碼中動態注冊:
/*
校驗藍牙權限
*/
private void checkBluetoothPermission() {
if (Build.VERSION.SDK_INT >= 23) {
//校驗是否已具有模糊定位權限
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
REQUEST_ENABLE_BT );
}else{
//權限已打開
startScan();
}
}else{
//小於23版本直接使用
startScan();
}
}
3、接收請求權限的返回:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_ENABLE_BT){
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//藍牙權限開啟成功
startScan();
}else{
Toast.makeText(MainActivity.this, "藍牙權限未開啟,請設置", Toast.LENGTH_SHORT).show();
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
檢查藍牙是否開啟:
public boolean checkBlueEnable(){
if (mBluetoothAdapter.isEnabled()){
return true;
}else {
Toast.makeText(this,"藍牙未打開",Toast.LENGTH_SHORT).show();
return false;
}
}
