gpt4 book ai didi

java - Android 蓝牙发现

转载 作者:行者123 更新时间:2023-12-01 15:28:40 25 4
gpt4 key购买 nike

当发现其他蓝牙设备时,我会为找到的每个设备发送 2 个广播。第一个在扫描期间发送,当完成扫描时,立即为所有找到的设备发送广播。我正在修改 SDK 中的 BluetoothChat 示例。

这是我的“BroadcastReceiver”:

 private final BroadcastReceiver foundRec = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(BluetoothDevice.ACTION_FOUND)) {

Log.e(TAG, "--- device found ---");

BluetoothDevice dev = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

if (dev.getBondState() == BluetoothDevice.BOND_BONDED) {
availableDevices.add(dev.getName() + " (paired)");
} else {
availableDevices.add(dev.getName());
}

} else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)){

Log.d(TAG, "DISCOVERY STARTED");
findViewById(R.id.lookup).setVisibility(View.VISIBLE);

}
}
};

谢谢!

最佳答案

我保留了一系列设备。每次收到 ACTION_FOUND 时,我都会检查设备数组以检查它是否存在。我的语法可能不正确,在浏览器中输入......但希望你明白。

我不知道您使用 availableDevices 数组做什么,但如果您使用 BluetoothDevice 数组而不是字符串数组,它可能会更有用。您始终可以在 onReceive 之外获取名称并检查绑定(bind)状态。

private final BroadcastReceiver foundRec = new BroadcastReceiver() {
List<BluetoothDevice> BtDevices = new ArrayList<BluetoothDevice>();
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(BluetoothDevice.ACTION_FOUND)) {

Log.e(TAG, "--- device found ---");

BluetoothDevice dev = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if(!IsBtDevPresent(dev)) {
BtDevices.add(dev);
if (dev.getBondState() == BluetoothDevice.BOND_BONDED) {
availableDevices.add(dev.getName() + " (paired)");
} else {
availableDevices.add(dev.getName());
}
}
} else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)){

Log.d(TAG, "DISCOVERY STARTED");
findViewById(R.id.lookup).setVisibility(View.VISIBLE);

}
}

private boolean IsBtDevPresent(BluetoothDevice dev) {
int size = BtDevices.size();
for(int i = 0; i<size; i++) {
if( BtDevices.get(i).equals(dev)) {
return true;
}
}
return false;
}

};

关于java - Android 蓝牙发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846794/

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