Предполагается, что проект будет постоянно давать мне RSSI устройства, MAC-адрес которого уже известен.Я получаю RSSI около 2-3 раз, а потом ничего.Несмотря на то, что я тестирую это устройство на телефоне Android, я могу обойти ограничения батареи и т. Д., Которые Google бросает на меня.Целевым устройством этого проекта будет устройство Android M. с рутом.
Это мой код:
private final BroadcastReceiver broadcastReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action=intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)){
BluetoothDevice device=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String deviceName=device.getName();
String deviceHardwareAddress=device.getAddress();
int rssi=intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
if(deviceHardwareAddress.equals(MAC)){
deviceFound=true;
bluetoothAdapter.cancelDiscovery();
Log.i("broadcastReceiver" , "device " + deviceName);
Log.i("broadcastReceiver" , "hard" + deviceHardwareAddress);
Log.i("broadcastReceiver","Rssi "+rssi);
Log.i("broadcastReceiver","Paired Id "+MAC );
tv.setText(deviceName+" "+rssi);
stringArrayList.add(String.valueOf(rssi));
arrayAdapter.notifyDataSetChanged();
deviceFound=false;
bluetoothAdapter.startDiscovery();
}
if(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){
if(deviceFound==false){
bluetoothAdapter.startDiscovery();
}
}
}
}
};