gpt4 book ai didi

android - 打开蓝牙并等待 Intent ?

转载 作者:太空狗 更新时间:2023-10-29 16:38:16 25 4
gpt4 key购买 nike

我有一个 Android 应用程序需要一些蓝牙设置;见下文:

if (!Constants.mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
while (!Constants.mBluetoothAdapter.isEnabled()) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
System.exit(1);
}
}
if (Constants.mBluetoothAdapter.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
startActivity(discoverableIntent);
}
while (Constants.mBluetoothAdapter.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
System.exit(1);
}
} // do some stuff with bluetooth

这对我来说似乎是一个 hack,只有在用户选择"is"时它才有效。我很确定我需要等待这些 Intent 的结果。这是怎么做到的?

最佳答案

您可以调用startActivityForResult()并实现onActivityResult()当用户从被调用的 Activity 返回时将被调用的方法。

要检查蓝牙是否启用,请将代码更改为:

if (!Constants.mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
} else {
progressToNextCheck();
}

然后在 progressNextCheck() 中以类似的方式执行蓝牙可发现性检查。

private void progressToNextCheck(){
if (Constants.mBluetoothAdapter.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
startActivityForResult(discoverableIntent, REQUEST_DISCOVERABLE_BT);
} else {
goToTheTask();
}
}

还有你的onActivityResult() 方法:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_ENABLE_BT) {
if (resultCode == RESULT_OK) {
progressToNextCheck();
}
} else if (requestCode == REQUEST_DISCOVERABLE_BT) {
if (resultCode == RESULT_OK) {
goToTheTask();
}
}
}

关于android - 打开蓝牙并等待 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com