Reputation: 1
I'm trying to catch the BLE signal, and get the rssi vlue by using "BluetoothLeScanner" to measure the distance between two phone.
But, my program detects every BLE_signal except the Bluetooth signal on my phone.
The following is what I printed out with Log.e as I ran the program.
'''
2019-12-01 00:21:16.319 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 33:DC:55:32:73:96, rssi: -88, distance: 8.912509381337454
2019-12-01 00:21:16.949 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 33:DC:55:32:73:96, rssi: -92, distance: 14.12537544622754
2019-12-01 00:21:16.962 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 22:32:AA:BF:25:16, rssi: -45, distance: 0.06309573444801933
2019-12-01 00:21:17.054 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 33:DC:55:32:73:96, rssi: -92, distance: 14.12537544622754
2019-12-01 00:21:17.064 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 22:32:AA:BF:25:16, rssi: -45, distance: 0.06309573444801933
2019-12-01 00:21:17.661 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 22:32:AA:BF:25:16, rssi: -49, distance: 0.1
2019-12-01 00:21:18.408 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 22:32:AA:BF:25:16, rssi: -42, distance: 0.04466835921509631
2019-12-01 00:21:18.425 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 33:DC:55:32:73:96, rssi: -87, distance: 7.943282347242816
2019-12-01 00:21:19.148 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 22:32:AA:BF:25:16, rssi: -48, distance: 0.08912509381337455
2019-12-01 00:21:19.779 22089-22089/com.example.bluetooth E/get_RSSI:
name: null, addr: 22:32:AA:BF:25:16, rssi: -46, distance: 0.0707945784384138
and below is the MainActivity, onResume() & class Bluetooth2
override fun onResume() {
super.onResume()
val mBlueToothAdapter = BluetoothAdapter.getDefaultAdapter()
val mBLEScanner = mBlueToothAdapter.getBluetoothLeScanner()
Bluetooth2().initialize(mBLEScanner)
}
...
class Bluetooth2 {
val mScanCallback = object: ScanCallback(){
override fun onScanResult(callbackType: Int, result: ScanResult?) {
super.onScanResult(callbackType, result)
val RSSI = result?.rssi
val NAME = result?.device?.name
val ADDR = result?.device?.address
if(!BLE_DB().contains(ADDR)) {
val text = "$ADDR $RSSI"
BLE_DB().append(1, text)
BLE_DB().append(2, NAME)
}
Log.e("get_RSSI", " name: $NAME, addr: $ADDR, rssi: $RSSI, distance: ${rssiTodis(RSSI)}")
}
}
.
.
.
fun initialize(bluetoothLeScanner: BluetoothLeScanner){
BLE_DB().initialize()
bluetoothLeScanner.startScan(mScanCallback)
Log.e("Initialization", "Initialized")
}
...
'''
I don't know why it doesn't catch the phone's signal...
Please help me...
Picture 1 is a screenshot of the Bluetooth window when I run Bluetooth. And Picture 2 is an existing RSSI analyzer application. As you can see in the pictures, my phone can scan my Galaxy S7 phone and recognize it, but I can't see it in my program's log. What should I do?
Upvotes: 0
Views: 229