android6.0以上设备连接不上蓝牙问题
2017-04-17 16:25
507 查看
真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" />
相关文章推荐
- Android6.0以上系统搜索不到 蓝牙BLE 设备问题
- 记Android6.0以上手机无法搜索到蓝牙设备的问题
- 设备通过蓝牙连接并相互通信问题
- 解决ActiveAndroid在Android6.0及以上的设备上,表创建失败的问题
- 关于安卓6.0以上系统中无法搜索到蓝牙设备的问题
- android设备连接蓝牙外设导致activity重启(recreate)的问题
- Android/iOS/Unity与BLE蓝牙设备连接失败问题指南
- Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析
- 关于蓝牙设备之间的连接问题
- Android中连接蓝牙设备时遇到createRfcommSocketToServiceRecord的UUID问题和BluetoothSocket的connect失败
- Android6.0蓝牙出现无法扫描设备或闪退问题解决办法
- IOS app蓝牙连接硬件设备 自动断开问题
- BluetoothAdapter在Android6.0/7.0+以上startDiscovery不能发现蓝牙设备问题
- 安卓蓝牙4.0以上连接多台设备并接收蓝牙设备数据
- Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析
- android4.4以上版本蓝牙连接问题
- BluetoothAdapter在Android6.0/7.0+以上startDiscovery不能发现蓝牙设备问题
- mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
- "设备未准备好。如果目标是ActiveSync 设备,请验证ActiveSync 连接是否在运行"问题的解决
- "设备未准备好。如果目标是ActiveSync 设备,请验证ActiveSync 连接是否在运行"问题的解决