Я пытаюсь научиться создавать приложения для Android через Java и Android Studio. Мой уровень Java - это несколько часов изучения YouTube и базового курса в колледже два года назад. Однако я знаю, как кодировать. Я хорошо знаю Python.

Я хочу использовать эту библиотеку Bluetooth ( https://github.com/akexorcist/Android-BluetoothSPPLibrary) чтобы я мог просто общаться между телефоном и микроконтроллером ESP32 с поддержкой Bluetooth.

В моем проекте я создал кнопку, которую я буду использовать для тестирования этой библиотеки.

*snip*
        //my button
        Button btn = findViewById(R.id.myBtn); //use R.id for the button id
        btn.setOnClickListener(new View.OnClickListener() { //button listener
            @Override
            public void onClick(View v) {
                //add whatever code here
                Log.e("my app", "log msg test"); //outputs to logcat window
                BluetoothSPP bt = new BluetoothSPP(Context);

                if(!bt.isBluetoothAvailable()) {
                    Log.e("my app", "bluetooth is not available");
                } else {
                    Log.e("my app", "bluetooth is available");
                }

            }
*snip*

Я застрял на:

BluetoothSPP bt = new BluetoothSPP(Context);

Контекст дает мне ошибку, говоря выражение ожидается. Я посмотрел, что такое контекст в Java, и понял, почему это так. Тем не менее, я понятия не имею, как реализовать это, не говоря уже о правильном контексте здесь.

0
datguy.dev 31 Май 2019 в 02:55

2 ответа

Лучший ответ

Если ваш код находится в классе, который унаследован от класса Activity

То есть класс MainActivity расширяет активность

Вы можете попробовать пройти так:

BluetoothSPP bt = new BluetoothSPP(MainActivity.this);

(потому что Activity реализует контекст)

Если он находится внутри чего-то вроде класса View или фрагмента, вы должны попробовать что-то вроде этого:

BluetoothSPP bt = new BluetoothSPP(getContext());
1
Vasili Fedotov 31 Май 2019 в 00:21

Если это для деятельности

BluetoothSPP bt = new BluetoothSPP(MainActivity.this);
or
BluetoothSPP bt = new BluetoothSPP(this);
or
BluetoothSPP bt = new BluetoothSPP(getApplicationContext());

Если это за фрагмент

BluetoothSPP bt = new BluetoothSPP(getActivty());
1
Thrishool MSM 1 Июн 2019 в 21:01