我有一个应用程序,其中一些 - 但不是全部 - 功能需要蓝牙连接。涉及蓝牙通信的一切都很完美。
然而,当启动应用程序并且手机上禁用蓝牙时,用户必须允许启用蓝牙 - 这很棒。但是,如果我按“否”,该应用程序将停止,无需进一步评论。我发现在调用.getAdapter()方法时会调用权限对话框:
final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
我想让用户可以按“否”然后让应用程序继续,只是没有蓝牙功能。但由于这不是我以编程方式提出的许可,因此我不知道在哪里拦截权限anwser。有任何想法吗?我看了这里,但没有找到答案:https://developer.android.com/reference/android/bluetooth/BluetoothManager#getAdapter()
答案 0 :(得分:3)
您必须致电
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
permission
对话框,可以在onActivityResult()
@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();
}
}