Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I think your code is ok, but you need to implement <code>startDiscovery()</code> in order to see results.</p> <p>The true is that <code>BluetoothDevice.EXTRA_RSSI</code> only works for discovering devices, when you connect to one of them you are not able any more to get its RSSI.</p> <p>Here I developed a very simple sample of an Activity that permit you see the RSSI of the devices near to you. You first need to add a TextView and a Button to your layout, then enable the Bluetooth Adapter and then just click the button. </p> <pre><code>package com.in2apps.rssi; import android.os.Bundle; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class RSSIActivity extends Activity { private BluetoothAdapter BTAdapter = BluetoothAdapter.getDefaultAdapter(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_rssi); registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); Button boton = (Button) findViewById(R.id.button1); boton.setOnClickListener(new OnClickListener(){ public void onClick(View v) { BTAdapter.startDiscovery(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_rssi, menu); return true; } private final BroadcastReceiver receiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)) { int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME); TextView rssi_msg = (TextView) findViewById(R.id.textView1); rssi_msg.setText(rssi_msg.getText() + name + " =&gt; " + rssi + "dBm\n"); } } }; } </code></pre> <p>It looks this way:</p> <p><img src="https://i.stack.imgur.com/lSmfm.png" alt="RSSI Detection - Android Example"></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload