title: Bluetooth Discovery not working properly
body: <p>I am new to android.
  I am trying a simple android app that will:
  - user click button to enable BT
  - user click button it will scan the nearby devices and give a list or try to connect to a specific device (app will be used in robotics)
  The anble button is working fine and enabling the Bluetooth but whe I push the scan button it start the discover but no callback returned. I already setup a listener and put some logs there and I am not seeing anything from the listener (I am sure there s discoverable devices around when I test)
  Here is the code below:</p>
  
  <pre><code>    public class MainActivity extends AppCompatActivity {
  
          private BluetoothAdapter BA;
          private Set&lt;BluetoothDevice&gt; scannedDevices;
          private final static int REQUEST_ENABLE_BT = 1;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
              setSupportActionBar(toolbar);
  
              FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
              fab.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                              .setAction("Action", null).show();
                  }
              });
              IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
              registerReceiver(mReceiver, filter);
          }
  
          @Override
          public boolean onCreateOptionsMenu(Menu menu) {
              // Inflate the menu; this adds items to the action bar if it is present.
              getMenuInflater().inflate(R.menu.menu_main, menu);
              return true;
          }
  
          @Override
          public boolean onOptionsItemSelected(MenuItem item) {
              // Handle action bar item clicks here. The action bar will
              // automatically handle clicks on the Home/Up button, so long
              // as you specify a parent activity in AndroidManifest.xml.
              int id = item.getItemId();
  
              //noinspection SimplifiableIfStatement
              if (id == R.id.action_settings) {
                  return true;
              }
  
              return super.onOptionsItemSelected(item);
          }
  
          @Override
          protected void onDestroy() {
              super.onDestroy();
              BA.cancelDiscovery();
              // Don't forget to unregister the ACTION_FOUND receiver.
              unregisterReceiver(mReceiver);
          }
  
  
          private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
              public void onReceive(Context context, Intent intent)
              {
                  Log.i("NKNKNK","onReceive method");
                  String action = intent.getAction();
                  if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                      // A Bluetooth device was found
                      // Getting device information from the intent
                      BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                      Log.i("NKNKNK","Device found: " + device.getName() + "; MAC " + device.getAddress());
                  }
              }
          };
  
          public void TunrONOnClick(View v)
          {
              // do something when the button is clicked
              Log.i("NKNKNK","TunrON button clicked");
              TextView output = findViewById(R.id.textView);
  
              BA = BluetoothAdapter.getDefaultAdapter();
              if (BA == null)
              {
                  Log.i("NKNKNK","No BT device supported");
                  return;
              }
              if (!BA.isEnabled()) {
                  // We need to enable the Bluetooth, so we ask the user
                  Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                  // REQUEST_ENABLE_BT es un valor entero que vale 1
                  startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
              }
              output.setText(BA.getName());
          }
  
          public void ScanOnClick(View v)
          {
              Log.i("NKNKNK","SCAN button clicked");
  
              BA = BluetoothAdapter.getDefaultAdapter();
              if (BA.isEnabled())
              {
                  if (BA.isDiscovering()) {
                      BA.cancelDiscovery();
                  }
                  Log.i("NKNKNK","Starting discovery logged");
                  BA.startDiscovery();
              }
          }
      }
  </code></pre>
  
  <p>and below the logs I am getting in Android studio:</p>
  
  <pre><code>    05-16 17:10:16.738 3072-3289/com.example.test D/MALI: eglCreateImageKHR:511: [Crop] 0 0 1856 2048  img[1856 2048] 
      05-16 17:10:16.740 3072-3289/com.example.test D/Surface: Surface::connect(this=0x7f8905f000,api=1)
      05-16 17:10:16.741 3072-3289/com.example.test W/libEGL: [ANDROID_RECORDABLE] format: 1
      05-16 17:10:16.742 3072-3289/com.example.test D/mali_winsys: new_window_surface returns 0x3000
      05-16 17:10:16.758 3072-3072/com.example.test W/art: Before Android 4.1, method int android.support.v7.widget.DropDownListView.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
      05-16 17:10:16.788 3072-3289/com.example.test I/PerfService: PerfServiceNative api init
      05-16 17:10:16.795 3072-3289/com.example.test D/OpenGLRenderer: CacheTexture 4 upload: x, y, width height = 0, 0, 105, 164
      05-16 17:10:16.801 3072-3289/com.example.test I/[MALI][Gralloc]: [+]r_hnd(0x7f87705aa0), client(50), share_fd(59)
      05-16 17:10:16.801 3072-3289/com.example.test D/GraphicBuffer: register, handle(0x7f87705aa0) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
      05-16 17:10:16.806 3072-3289/com.example.test D/OpenGLRenderer: ProgramCache save to disk, size = 7
      05-16 17:10:16.815 3072-3289/com.example.test I/[MALI][Gralloc]: [+]r_hnd(0x7f87705a00), client(50), share_fd(62)
      05-16 17:10:16.815 3072-3289/com.example.test D/GraphicBuffer: register, handle(0x7f87705a00) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
      05-16 17:10:16.818 3072-3072/com.example.test V/InputMethodManager: onWindowFocus: null softInputMode=288 first=true flags=#81810100
          START INPUT: com.android.internal.policy.PhoneWindow$DecorView{b390d2e V.E...... R.....ID 0,0-1080,1920} ic=null tba=android.view.inputmethod.EditorInfo@f310fac controlFlags=#104
      05-16 17:10:16.838 3072-3289/com.example.test I/[MALI][Gralloc]: [+]r_hnd(0x7f87705be0), client(50), share_fd(65)
      05-16 17:10:16.838 3072-3289/com.example.test D/GraphicBuffer: register, handle(0x7f87705be0) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
      05-16 17:10:20.866 3072-3289/com.example.test I/[MALI][Gralloc]: [+]r_hnd(0x7f87706040), client(50), share_fd(67)
      05-16 17:10:20.866 3072-3289/com.example.test D/GraphicBuffer: register, handle(0x7f87706040) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
      05-16 17:10:20.866 3072-3072/com.example.test D/ActivityThread: holder:android.app.IActivityManager$ContentProviderHolder@540fc0a, holder.provider:android.content.ContentProviderProxy@3328c7b
      **05-16 17:10:20.867 3072-3072/com.example.test I/NKNKNK: TunrON button clicked**
      05-16 17:10:20.870 3072-3072/com.example.test D/BluetoothAdapter: isEnabled
      05-16 17:10:20.870 3072-3072/com.example.test I/Timeline: Timeline: Activity_launch_request time:263559951
      05-16 17:10:20.883 3072-3072/com.example.test D/BluetoothAdapter: getName
      05-16 17:10:20.889 3072-3072/com.example.test D/ActivityThread: ACT-AM_ON_PAUSE_CALLED ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}}
      05-16 17:10:20.890 3072-3289/com.example.test D/OpenGLRenderer: CacheTexture 4 upload: x, y, width height = 28, 0, 120, 187
      05-16 17:10:21.659 3072-3072/com.example.test V/ActivityThread: Finishing stop of ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}}: show=true win=com.android.internal.policy.MiuiPhoneWindow@5537557
      05-16 17:10:23.706 3072-3223/com.example.test D/BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@a93a844
      05-16 17:10:24.130 3072-3072/com.example.test V/ActivityThread: Performing resume of ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}}
      05-16 17:10:24.131 3072-3072/com.example.test D/ActivityThread: ACT-AM_ON_RESUME_CALLED ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}}
      05-16 17:10:24.131 3072-3072/com.example.test V/ActivityThread: Resume ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}} started activity: false, hideForNow: false, finished: false
          Resuming ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}} with isForward=false
      05-16 17:10:24.132 3072-3072/com.example.test V/PhoneWindow: DecorView setVisiblity: visibility = 0 ,Parent =ViewRoot{c8ed89e com.example.test/com.example.test.MainActivity,ident = 0}, this =com.android.internal.policy.PhoneWindow$DecorView{b390d2e V.E...... R....... 0,0-1080,1920}
      05-16 17:10:24.132 3072-3072/com.example.test V/ActivityThread: Scheduling idle handler for ActivityRecord{4162956 token=android.os.BinderProxy@a3cc6c4 {com.example.test/com.example.test.MainActivity}}
      05-16 17:10:24.141 3072-3072/com.example.test V/InputMethodManager: onWindowFocus: null softInputMode=32 first=false flags=#81810100
          START INPUT: com.android.internal.policy.PhoneWindow$DecorView{b390d2e V.E...... R......D 0,0-1080,1920} ic=null tba=android.view.inputmethod.EditorInfo@5ce2ae controlFlags=#100
      05-16 17:10:28.904 3072-3072/com.example.test D/SettingsInterface:  from settings cache , name = sound_effects_enabled , value = 0
      **05-16 17:10:28.904 3072-3072/com.example.test I/NKNKNK: SCAN button clicked
      05-16 17:10:28.904 3072-3072/com.example.test D/BluetoothAdapter: isEnabled
      05-16 17:10:28.906 3072-3072/com.example.test D/BluetoothAdapter: isDiscovering
      05-16 17:10:28.908 3072-3072/com.example.test D/BluetoothAdapter: 141409244: getState(). Returning 12
      05-16 17:10:28.912 3072-3072/com.example.test I/NKNKNK: Starting discovery logged
      05-16 17:10:28.913 3072-3072/com.example.test D/BluetoothAdapter: startDiscovery
      05-16 17:10:28.914 3072-3072/com.example.test D/BluetoothAdapter: 141409244: getState(). Returning 12**
  </code></pre>
  
  <p><strong>Edit: I am using a redmi note 4 to run the app</strong>
  Thanks</p>