Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: None  |  size: 2.03 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Android Bluetooth Discovery in a sequential method?
  2. public void onCreate(Bundle savedInstanceState) {
  3.     super.onCreate(savedInstanceState);
  4.     setContentView(R.layout.main);
  5.  
  6.     // Get local Bluetooth adapter
  7.     mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
  8.  
  9.     mSendButton = (Button) findViewById(R.id.button1);
  10.     mSendButton.setOnClickListener(new OnClickListener() {
  11.         public void onClick(View v) {
  12.             doDiscovery();
  13.         }
  14.     });
  15. }
  16.  
  17. private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
  18.     @Override
  19.     public void onReceive(Context context, Intent intent) {
  20.         String action = intent.getAction();
  21.  
  22.         if (BluetoothDevice.ACTION_FOUND.equals(action)) {
  23.             // Get the BluetoothDevice object from the Intent
  24.             BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
  25.             Log.e("device_name", device.getName());
  26.             Log.e("device_add", device.getAddress());
  27.             numberOfDevice++;
  28.             Found_Device = true;
  29.         } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
  30.             if(numberOfDevice == 0){
  31.                 Log.e("DISCOVERY", "No Device found");
  32.             }
  33.             Log.e("DISCOVERY", "Number of device :" + numberOfDevice);
  34.             Discovery_Finish = true;
  35.         }
  36.     }
  37. };
  38.  
  39. public void doDiscovery(){
  40.     IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
  41.     filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
  42.     registerReceiver(mReceiver, filter);
  43.  
  44.     Discovery_Finish = false;
  45.     Found_Device = false;
  46.     long counter = 0;
  47.  
  48.     if (mBluetoothAdapter.isDiscovering()) {
  49.         mBluetoothAdapter.cancelDiscovery();
  50.     }
  51.     mBluetoothAdapter.startDiscovery();
  52.     while((Found_Device == false) || (Discovery_Finish == false)){
  53.         counter++;
  54.         if (counter >= 1000000){
  55.             break;
  56.         }
  57.     }
  58.     // Add a code to check the number of device
  59.  
  60.     unregisterReceiver(mReceiver);
  61.     mBluetoothAdapter.cancelDiscovery();
  62. }