android6.0以上設備連接不上藍牙問題

真tm噁心! 6.0以後想打開藍牙,必先打開位置!


//啓動權限檢測
mCheckPermissionsPresenter = new CheckPermissionsPresenterImp(this);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
    mCheckPermissionsPresenter.checkPermissions(this,
            Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE);
}else{
    mCheckPermissionsPresenter.checkPermissions(this,
            Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.ACCESS_COARSE_LOCATION);
}


@Override
public void onCheckPermissionsSuccess(){
    if (Build.VERSION.SDK_INT >= 23 ) {
        if(!isLocationOpen(getApplicationContext())){
            Intent enableLocate = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivityForResult(enableLocate, REQUEST_LOCATION_PERMISSION);
            return;
        }
    }


/** *判斷位置信息是否開啓 */
public static boolean isLocationOpen(final Context context){
    LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    //gps定位
    boolean isGpsProvider = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    //網絡定位
    boolean isNetWorkProvider = manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    return isGpsProvider|| isNetWorkProvider;
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_LOCATION_PERMISSION) {
        if (!isLocationOpen(getApplicationContext())) {
            Toast.makeText(LauncherActivity.this, "安卓6.0系統要求:如果要使用藍牙設備,必須打開位置!", Toast.LENGTH_SHORT).show();
        }

        //...
       
    }
    super.onActivityResult(requestCode, resultCode, data);
}

<!-- 藍牙分享所需的權限 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!--6.0版本以上的藍牙權限需要模糊定位權限,僅作用於6.0+-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章