安卓搜索蓝牙设备

6

我正在尝试查找可用的蓝牙设备。

这是我的OnClickListener,当用户尝试搜索可用设备时调用它。

View.OnClickListener OnSearchDevices = new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            //Toast.makeText(context, "Search Devices", Toast.LENGTH_LONG).show();
            Log.d("Discovery", "Started");
            listOfDevices.clear();
            label.setText("Searching Available Devices...");
            label.setEnabled(false);
        }
    };

我还注册了一个广播接收器(BroadcastReceiver)。

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();

            // When discovery finds a device
            if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                // Get the BluetoothDevice object from the Intent
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                Log.d("DeviceList" , device.getName() + "\n" + device.getAddress());
                MyBluetoothDevice tempDevice = new MyBluetoothDevice();
                tempDevice.setDeviceAddress(device.getAddress());
                tempDevice.setDeviceName(device.getName());
                listOfDevices.add(tempDevice);
                mListAdapter.notifyDataSetChanged();
                //  discovery is finished
            }
            else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {

                Log.d("Discovery","Finished");
                label.setEnabled(true);
                if(listOfDevices.size() == 0)
                {
                    label.setText("No Devices Available!");
                    label.setTextColor(Color.parseColor("#FF0000"));

                }
                else
                {
                    label.setText("Available Devices");
                }

            }
        }
    };

但是什么也没有发生。它没有显示任何东西。请帮忙。

1个回答

5

看起来你没有调用mBluetoothAdapter.startDiscovery()

这就解释了为什么你没有得到任何结果,因为适配器甚至没有开始搜索设备。

除此之外,你的代码看起来很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接