J'ai un problème avec le scan BLE d'Android, je ne reçois pas le nom complet des périphériques scannés trouvés, je reçois seulement la première lettre que vous avez idée comment résoudre ce problème?Scan Ble Android/getName() ou périphérique non complet ou nul
Je travaille avec un appareil de 7,0 Nougat qui soutient BLE
Ceci est une partie de mon code:
mBluetoothScanner = mBluetoothAdapter.getBluetoothLeScanner();
settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
.build();
if (Build.VERSION.SDK_INT >= 21) {
mScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
messageLog.error("onScanResult");
BluetoothDevice btDevice = null;
if (Build.VERSION.SDK_INT >= 21) {
btDevice = result.getDevice();
messageLog.error("btDevice : " + btDevice.getName() + "|" + btDevice.getAddress() + "|" + Arrays.toString(btDevice.getUuids()));
}
if (btDevice != null && btDevice.getName() != null && !isInDeviceList(btDevice))
mDeviceList.add(btDevice);
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
}
@Override
public void onScanFailed(int errorCode) {
Log.e("Scan Failed", "Error Code: " + errorCode);
}
};
}
Avec btDevice.getName() Je ne reçois que la première lettre d'un appareil scanné, est-ce ma faute ou provient-il de l'API Android BLE?
Merci, je vais essayer de changer le nom dans le firmware et je vais vous dire si cela fonctionne. J'ai essayé le "result.getScanRecord()" et j'ai réussi à obtenir les 8 premières lettres, Pensez-vous que c'est un nombre fixe d'octets? – dabbu
Merci monsieur :) J'ai utilisé result.getScanRecord() au lieu de getName et de changer le nom dans le firmware, passez une bonne journée! – dabbu