Android搜索蓝牙设备

时间:2013-06-12 06:36:26

标签: android bluetooth

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

这是我的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 个答案:

答案 0 :(得分:5)

您似乎错过了对 mBluetoothAdapter.startDiscovery() 的调用。

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

否则你的代码看起来不错。