Пытаюсь получить BluetoothAdapter; Не удается разрешить метод GetSystemService (java.lang.String)

Я слежу за документами BluetoothLE в Android Studio:

https://developer.android.com/guide/topics/connectivity/bluetooth-le#setup

Моя цель - настроить Bluetooth для работы с моим Java-приложением.

Почему я получаю сообщение об ошибке «Невозможно разрешить метод» и как решить эту проблему? Кроме того, почему mBluetoothAdapter - неизвестный класс, если я просто объявил его как имя переменной?

package com.august.sensorclient;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.Intent;
import java.lang.String;

public class BLEScanner {

    private BluetoothAdapter mBluetoothAdapter;


    // Initializes Bluetooth adapter.
    final BluetoothManager bluetoothManager =
            (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
    mBluetoothAdapter = bluetoothManager.getAdapter();

    // Ensures Bluetooth is available on the device and it is enabled. If not,
    // displays a dialog requesting user permission to enable Bluetooth.
    if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }

}

Пытаюсь получить BluetoothAdapter; Не удается разрешить метод GetSystemService (java.lang.String)

Решено: Я верю, что ПРИЧИНА, ПОЧЕМУ МОЙ КОД НЕ ПОЛУЧАЛ ОШИБКИ, БЫЛА ПОТОМУ ЧТО Я НЕ НАСТОЯЩИЙ НАЗЫВАЛ НИЧЕГО ПОТОМУ ЧТО Я ПЫТАЛСЯ ЗАПИСАТЬ ЭТОТ КОД В КЛАСС, А НЕ В ФАКТИЧЕСКУЮ ФУНКЦИЮ.

Почему бы вам просто не использовать BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

Parag Pawar 07.09.2018 22:20

@ParagPawar, это хороший вопрос. Я только что копировал из документов Android. Я изучил метод .getDefaultAdapter и не понимаю, почему он не работает. Спасибо

user4892981 07.09.2018 22:26

Пожалуйста :)

Parag Pawar 07.09.2018 22:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
1 667
1

Ответы 1

Отредактируйте свой код с помощью

 BluetoothManager bluetoothAdapter = (BluetoothManager) 
 mContext.getSystemService(Context.BLUETOOTH_SERVICE);

чтобы получить mContext, вы должны передать контекст своей активности в класс BLEScanner.

Или вы можете напрямую написать такой код

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

Другие вопросы по теме