Android 从bluetooth manager获取适配器后的权限

Android 从bluetooth manager获取适配器后的权限,android,bluetooth-lowenergy,android-permissions,android-bluetooth,Android,Bluetooth Lowenergy,Android Permissions,Android Bluetooth,我有一个应用程序,其中一些(但不是全部)功能需要蓝牙连接。一切涉及蓝牙通信的工作都非常完美 但是,当启动应用程序时,如果手机上禁用了蓝牙,用户必须授予启用蓝牙的权限,这非常好。但是,如果我按“否”,应用程序将停止运行,没有任何进一步的评论。我发现调用.getAdapter()方法时会调用权限对话框: 我想让用户有可能按下“否”,然后应用程序继续,只是没有蓝牙功能。但是,由于这不是我通过编程方式请求的权限,我不知道在哪里拦截权限anwser。有什么想法吗?我看了这里,但没有找到答案:你得打电话 B

我有一个应用程序,其中一些(但不是全部)功能需要蓝牙连接。一切涉及蓝牙通信的工作都非常完美


但是,当启动应用程序时,如果手机上禁用了蓝牙,用户必须授予启用蓝牙的权限,这非常好。但是,如果我按“否”,应用程序将停止运行,没有任何进一步的评论。我发现调用.getAdapter()方法时会调用权限对话框:

我想让用户有可能按下“否”,然后应用程序继续,只是没有蓝牙功能。但是,由于这不是我通过编程方式请求的权限,我不知道在哪里拦截权限anwser。有什么想法吗?我看了这里,但没有找到答案:

你得打电话

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(!bluetoothAdapter.isEnabled()) {
     Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
     startActivityForResult(intent,1);
}
else {
     Toast.makeText(this,"Blurtooth Enabled",Toast.LENGTH_SHORT).show();
}
然后会弹出
Blurtooth
权限
对话框,选择的结果可以在
onActivityResult()中处理

你得打电话

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(!bluetoothAdapter.isEnabled()) {
     Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
     startActivityForResult(intent,1);
}
else {
     Toast.makeText(this,"Blurtooth Enabled",Toast.LENGTH_SHORT).show();
}
然后会弹出
Blurtooth
权限
对话框,选择的结果可以在
onActivityResult()中处理


“应用程序停止,没有任何进一步的评论”-你确定日志中没有信息吗?通常,崩溃与某些输出相关。不,logcat中没有任何内容。这就是为什么它如此困难,我不知道从哪里开始寻找“应用程序停止,没有任何进一步的评论”-你确定日志中没有信息吗?通常,崩溃与某些输出相关。不,logcat中没有任何内容。这就是为什么这么难,我不知道该从哪里开始谢谢你。非常好,谢谢。完美地工作
   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(resultCode == RESULT_OK)
            {
               Toast.makeText(this,"Enable Enabled",Toast.LENGTH_SHORT).show();
            }
           else
           {
               Toast.makeText(this,"Enable bluetooth first",Toast.LENGTH_SHORT).show();
           }
   }