2015-12-27 2 views
1

В настоящее время я разработал новый метод для обнаружения готовых соединений bluetooh. Вот мой код:Как вызвать метод onReceive в другом методе?

private void DiscoverOBDConnection() { 
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    mBluetoothAdapter.startDiscovery(); 
    BroadcastReceiver mReceiver; 

    // Create a BroadcastReceiver for ACTION_FOUND 
    final List<String> discoverableDevicesList = new ArrayList<String>(); 

    mReceiver = new BroadcastReceiver() { 
     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); 
       short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE); 
       discoverableDevicesList.add(device.getName() + "\n" + device.getAddress() + "\n" + rssi); 

       String discoveredDeviceName = device.getName(); 
       discoverableDevicesList.add(discoveredDeviceName); 
      } 
     } 
    }; 

    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
    context.registerReceiver(mReceiver,filter); // Don't forget to unregister during onDestroy 
} 

Я просто не знаю, как вызвать метод onreceive из другого метода. Не могли бы вы помочь мне узнать, как реализовать и открыть готовые для подключения устройства Bluetooth?

ответ

0

Вы можете просто отправить широковещательный

Intent i = new Intent(BluetoothDevice.ACTION_FOUND); 
sendBroadcast(i); 

Или позвоните непосредственно

mReceiver.onReceive(this, new Intent(BluetoothDevice.ACTION_FOUND)); 
+0

Soohwan, спасибо за ваш ответ. Не могли бы вы изменить мой код, чтобы найти ответ? Где я должен позвонить BluetoothReceiver напрямую? Спасибо. –

+0

Soohwan Park, он отлично работал. Я понял, как реализовать ваше предложение. Спасибо. –

+0

Отлично. но почему вам нужно называть это самим? Трансляция отправляется системой @the_eternal –

Смежные вопросы