Целевая версия SDK - 32 - Min SDK версия - это 23 < /p>
Первый этап, очевидно, сканирует для рекламных устройств. Он отлично работает с Android 6, 10 и 12. Я застрял в этой ситуации, и я надеюсь, что кто -то заметит что -то странное в моем коде.
Код: Выделить всё
@SuppressLint("MissingPermission")
private void doBleScan() {
ScanSettings scanSettings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.build();
ArrayList filters = new ArrayList();
mDiscoveredDevices = new HashSet();
mBluetoothLeScanner.startScan(filters, scanSettings, scanCallback);
}
Код: Выделить всё
@Override
@SuppressLint("MissingPermission")
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
//always null with Android 8
String deviceName = result.getDevice().getName();
if(deviceName != null) {
txtLog.append("\nDN" + deviceName);
mDiscoveredDevices.add(result.getDevice());
}
}
< /code>
Манифестный файл содержит много объявлений. Проект довольно сложный, а также требует доступа к сетям Wi-Fi, местоположению GPS и памяти планшетов: < /p>
Код: Выделить всё
private void requestRelevantRuntimePermissions() {
String title;
String message;
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
title = "Bluetooth permissions required";
message = "Starting from Android 12, the system requires apps to be granted " +
"Bluetooth access in order to scan for and connect to BLE devices.";
permissions = new String[]{Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.BLUETOOTH_CONNECT};
} else {
title = "Location permission required";
message = "Starting from Android M (6.0), the system requires apps to be granted " +
"location access in order to scan for BLE devices.";
permissions = new String[]{Manifest.permission.ACCESS_FINE_LOCATION};
}
requestPermissions(title, message, permissions);
}
private void requestPermissions(final String title, final String message, final String[] permissions) {
final Activity activity = this;
mPermissionToCheck = permissions;
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity);
alertDialogBuilder
.setTitle(title)
.setMessage(message)
.setCancelable(false)
.setPositiveButton(R.string.btn_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
ActivityCompat.requestPermissions(
activity,
permissions,
RUNTIME_PERMISSION_REQUEST
);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
});
}
Есть какие -либо предложения?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... -android-8