获取蓝牙信号强度

我想获取连接到手机的另一台设备的蓝牙信号强度,

我试图在Google上进行大量搜索,但未找到任何答案。

有人知道我该如何实施吗?

这是myActivity:

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, 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);

Toast.makeText(getApplicationContext()," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show();

}

}

};

}

我的清单文件中也有蓝牙许可。

回答:

要获取信号,您可以检查蓝牙RSSI,可以阅读已连接设备的RSSI,或执行蓝牙发现以检查附近任何设备的RSSI。

基本上,蓝牙发现是向范围内的所有电台广播以进行响应。随着每个设备的响应,Android会触发ACTION_FOUND意图。在此意图内,您可以获取Extra

EXTRA_RSSI以获取RSSI。

请注意,并非所有的蓝牙硬件都支持RSSI。

也相关:AndroidRC办公时间关于Android蓝牙RSSI的问题

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);

Toast.makeText(getApplicationContext()," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show();

}

}

};

以上是 获取蓝牙信号强度 的全部内容, 来源链接: utcz.com/qa/410706.html

回到顶部