我试过了
reciever = new BroadcastReceiver() {
@Override
public void onReceive(Context context, final Intent intent) {
if (BluetoothDevice.ACTION_FOUND.equals(intent.getAction())) {
`Toast.makeText(getApplicationContext(), "Devices Found" ,` `Toast.LENGTH_SHORT).show();`
BluetoothDevice devicex;
devicex =intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if(!devicer.contains(devicex))
{devicer.add(devicex);list.add(devicex.getName());}
}}};
但这只取一个设备。我需要收集列表中的所有可用设备并将其显示在列表视图中。我还想在一定的时间间隔内重复扫描(使用TimerTask)。我该怎么做
答案 0 :(得分:0)
您确定智能手机周围有可用的设备吗?
你能为行动添加日志吗?例如,BluetoothAdapter.ACTION_DISCOVERY_STARTED
,BluetoothAdapter.ACTION_DISCOVERY_FINISHED
,BluetoothDevice.ACTION_FOUND
。
答案 1 :(得分:0)
好BluetoothDevice device1 =
intent.getParceableExtra(BluetoothDevice.EXTRA_DEVICE);
最好只获取一个可用设备。和
ArrayList<BluetoothDevice> list=intent.getParceableArrayListExtra(BluetoothDevice.EXTRA_DEVICE);
投掷"Attempt to invoke Null Object Reference errors"
所以我找到了一个有效的解决方案。
只需输入多行。
BluetoothDevice devicex;
devicex = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if(!list.contains(devicex))
{list.add(devicex);}
devicex = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if(!list.contains(devicex))
{list.add(devicex);}
devicex = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if(!list.contains(devicex))
{list.add(devicex);}
这些语句将获取可用设备并将其添加到列表中(如果它尚未存在),然后再次为其他可用设备执行此操作。开发人员指南中没有其他方法可以执行此操作。 这些语句以线性时间运行。所以他们可能不会引起任何问题。
如果需要,建议更正。