E / BluetoothAdapter: связыватель Bluetooth является нулевым - PullRequest
0 голосов
/ 31 января 2019

привет У меня проблема с OnePlus6, это устройство обнаружено как не имеющее Bluetooth

вот метод, который активирует Bluetooth:

protected void onResume(){
    super.onResume();
    boolean fAdapterEnabled = BluetoothAdapter.getDefaultAdapter().isEnabled();
    try {
        if (!fAdapterEnabled) {
            Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivity(intent);
        }
    }catch (Exception e){
        Log.d("bgx_dbg", "Exception caught while calling isEnabled.");
        Toast.makeText(this,"Exception caught", Toast.LENGTH_LONG).show();
    }
}

Я хочу уточнить, этот код работаетотлично с другим смартфоном

вот ошибка у меня:

2019-01-25 14: 16: 57.571 28761-28761 /?E / BluetoothAdapter: связыватель Bluetooth не установлен 2019-01-25 14: 16: 57.590 28761-28761 /?E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.clj.blesample, PID: 28761 java.lang.NullPointerException: попытка вызвать виртуальный метод «boolean android.bluetooth.BluetoothAdapter.isEnabled ()» для ссылки на нулевой объект

МАНИФЕСТ:

<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

1 Ответ

0 голосов
/ 31 января 2019

Из приведенного выше кода это, похоже, проблема с адаптером Bluetooth, которая может возникнуть, если вы либо не предоставите приложению правильные разрешения в манифесте, показанном ниже, либо нарушен Bluetooth.Ниже я добавил код, который вы должны использовать, чтобы учесть неисправный Bluetooth, а также создать служебный класс, из которого вы можете вызывать его.

Примечание.Разрешения:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Код:

public static boolean isBluetoothEnabled() {
    final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    return (bluetoothAdapter != null && bluetoothAdapter.isEnabled());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...