Android RSSI valor de Bluetooth devuelve -32768 siempre?

Estoy intentando conseguir el valor actual de RSSI de un dispositivo bluetooth conectado en el tecleo de un botón. Sin embargo, sólo devuelve -32768 siempre! ¡No sabes lo que está mal! Sin embargo, pude obtener el RSSI correcto, la primera vez que se conectó.

private Button.OnClickListener buttonRSSIOnClickListener = new Button.OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(BluetoothDevice.ACTION_FOUND); short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); Toast.makeText(getApplicationContext()," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show(); }}; 

¿Puede alguien ayudarme por favor?

Esto no es cómo se utiliza una Intención. Está recibiendo -32768 porque el RSSI no está en ese intento que acaba de crear y el resultado predeterminado que ha especificado es Short.MIN_VALUE (-32768).

Necesita subclasificar BroadcastReceiver y crear un IntentFilter (o utilizar el manifiesto) para que reciba la intención BluetoothDevice.ACTION_FOUND.

Usted no será capaz de hacer esto "con el clic de un botón." Sólo lo obtendrá cuando Android genere ACTION_FOUND.

Aquí hay algo cercano. No lo he ejecutado yo mismo.

En onCreate ():

 registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

En otra parte:

 private final BroadcastReceiver receiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)) { short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); Toast.makeText(getApplicationContext()," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show(); } } }; 

EDIT: En realidad, es posible que pueda hacerlo a petición si llama a startDiscovery () en su BluetoothAdapter desde onClick (). Esto debería activar ACTION_FOUND para cada dispositivo que descubra.

  • Android, lista de valores rssi para las redes wifi más potentes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.