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?
- ¿Cómo obtener la fuerza de la señal del servicio celular en Android?
- Problema con WifiManager.calculateSignalLevel (RSSI, 5)
- La aplicación nunca recibe RSSI_CHANGED_ACTION
- Velocidad de análisis WiFi más rápida para obtener cambios rssi android
- ¿Cómo mejorar la medición de la distancia Bluetooth mediante RSSI?
- ¿Cómo obtener RSSI sin conexión al dispositivo BLE?
- Android 2.1: ¿Cómo puedo consultar el valor RSSI de una conexión Bluetooth existente?
- Lectura Bluetooth RSSI para perfil de proximidad BLE en Android
- ¿Existe una manera de controlar explícitamente los intervalos de análisis WiFi en Android?
- Diferencia entre getConnectionInfo () y getScanResults () para detectar cambios de intensidad de señal
- Android: ¿Por qué los métodos para obtener las intensidades de la señal de la célula vecina mejor que los de la intensidad de señal de la celda actual?
- ¿Cómo utilizar LibSVM en Java?
- Android IRC Horas de oficina Pregunta Acerca de Android Bluetooth RSSI
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.