У меня есть кнопка и TextView в моем макете.
Я пытаюсь получить значение мощности сигнала устройства BLE, цель состоит в том, чтобы без необходимости найти, где находятся нужные устройства. для подключения, и для этого мне нужно получить RSSI всех устройств рядом со мной. Я написал следующий код на основе других сообщений.
Проблема в том, что мое устройство никогда не входит в функцию ScanCallback, и я не знаю почему.
Может ли кто-нибудь дать руководство о том, как решить проблему? Спасибо!
Код: Выделить всё
import ...
public class MainActivity extends AppCompatActivity {
private BluetoothAdapter mBluetoothAdapter;
private BluetoothLeScanner mBluetoothLeScanner;
private ScanCallback mScanCallback;
private Button mButton;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = findViewById(R.id.button1);
mTextView = findViewById(R.id.textView1);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();
mScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
int rssi = result.getRssi();
mTextView.setText("RSSI: " + rssi);
}
};
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) {return;}
mBluetoothLeScanner.startScan(mScanCallback);
}
});
}
}
Источник: https://stackoverflow.com/questions/741 ... oth-device