【发布时间】:2014-10-02 09:42:24
【问题描述】:
我正在尝试连续显示蓝牙设备并在屏幕上显示它们,但它从不显示所有设备,而是一次只显示 1 个。我找不到我做错了什么。这是我的代码,您可能会在其中找到任何问题。谢谢
class monitorBluetooth extends monitor {
private ListView mLvDevices;
private ArrayList<String> mDeviceList = new ArrayList<String>();
public monitorBluetooth(service service) {
super(service);
bluetooth = BluetoothAdapter.getDefaultAdapter();
this.bReceiver = new BluetoothReceiver();
}
public void finalize() throws Throwable {
super.finalize();
}
public void run() {
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
service.registerReceiver(this.bReceiver, filter);
if(service != null) {
bluetooth = BluetoothAdapter.getDefaultAdapter();
bluetooth.startDiscovery();
}
}
class BluetoothReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Set<BluetoothDevice> pairedDevices = bluetooth.getBondedDevices();
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String uuid = intent.getStringExtra(BluetoothDevice.EXTRA_UUID);
int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
mDeviceList.add(device.getAddress() + ", " + device.getName()); // get mac address
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, mDeviceList);
mLvDevices.setAdapter(adapter);
}
}
}
}
BluetoothAdapter bluetooth;
private BluetoothReceiver bReceiver;
【问题讨论】:
标签: android android-intent bluetooth broadcastreceiver