2013-06-12 191 views
5

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

这是我的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"); 
       } 

      } 
     } 
    }; 

但没有任何反应。它没有显示任何东西。请帮忙。

回答

5

看起来您缺少对的呼叫mBluetoothAdapter.startDiscovery()

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

您的代码看起来好像没什么问题,否则。

+0

我在哪里添加? – user2477164

+0

'onClick()' – Swayam

+0

太棒了!像魔术一样工作!你摇滚男人! :d – user2477164