Когда активность открывается на телефон с API < 18 дает исключениеНе удалось найти класс «android.bluetooth.BluetoothManager»
Could not find class 'android.bluetooth.BluetoothManager'
Несмотря на следующей проверки:
private void activateBluetoothSmart() {
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) && (Build.VERSION.SDK_INT >= 18)) {
final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
myBluetoothAdapter = bluetoothManager.getAdapter();
if (myBluetoothAdapter == null || myBluetoothAdapter.isEnabled() == false) {
Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetoothIntent, REQUEST_ENABLE_BT);
} else {
scanForHrm();
}
}
}
Кроме от того, почему проверка версии игнорируется. Я не понимаю, почему код вызывается при открытии активности, его следует вызывать только тогда, когда пользователь нажимает кнопку.
Все классы «предварительно загружены» при открытии активности? Я рассмотрел этот вопрос: NoClassDefFoundError during class load for BLE scanning callback, который предлагает проверку кода версии, а также проверку функции, но ничего не нашел.
Я ответил на вопрос, с чем я работал, я знаю, что ответ неадекватен, но думал, что кто-то может найти что-то лучше, чем ничего! – user1977132