获取蓝牙信号强度
我想获取连接到手机的另一台设备的蓝牙信号强度,
我试图在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