Скорее всего, ваше устройство объявляет недействительные данные. Если это так, Android вернет пустой список услуг, даже если неверные данные были в несвязанном поле.
Поэтому проанализируйте рекламные данные и проверьте их на наличие UUID, который вы ищете. Как только вы поймете, что происходит, вы можете самостоятельно проанализировать данные.
(код ниже Java вместо Kotlin. Но Android Studio должна преобразовать их автоматически.)
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
ScanRecord scanRecord = result.getScanRecord();
byte[] advertisementData = scanRecord.getBytes();
Log.i(TAG, "advertisement data: " + bytesToHex(advertisementData));
}
private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
return new String(hexChars);
}