Фрагмент против службы для соединения Bluetooth - PullRequest
1 голос
/ 01 мая 2020

Я узнаю о Android и хочу создать приложение, которое подключается через Bluetooth. Мне бы хотелось, чтобы в моем приложении было как минимум 3 экрана, которые разделяют соединение Bluetooth, на данный момент у меня есть код, который показывает устройства, и это делает соединение, но я не знаю, как передать это соединение Bluetooth между всеми экранами. Я искал и в основном читал о 2 решениях, одно из которых заключается в создании службы для всего кода Bluetooth, а второе - в использовании фрагментов кода. Я действительно не знаю, какое решение лучше или проще для моей проблемы. Кто-нибудь есть какие-нибудь советы по этой проблеме? спасибо за вашу помощь.

1 Ответ

1 голос
/ 01 мая 2020

Вы пытались использовать объект приложения для хранения соединения Bluetooth в объекте и использовать ваши действия для его получения?

Попробуйте что-то подобное. (Примечание: я никогда не работал с Bluetooth на Android, поэтому я не знаю, какие соответствующие классы использовать. В этом случае я буду использовать BluetoothDevice , так как это, кажется, правильный класс на основе документации библиотеки)

    public class MyApplication extends Application {
    BluetoothDevice device;
    ...
    public synchronized BluetoothDevice getBtConnection() {
        if (device == null) {
            // construct a BluetoothDevice object and put it into variable device
        }
        return device;
    }
}

Таким образом, ваше первое действие просто должно сделать это:

public class FirstActivity extends Activity {
private BluetoothDevice device;
...
@Override
protected void onCreate(Bundle b) {
    super(b);
    ...
    device = ((MyApplication) getApplication()).getBtDevice();
    ...
}
...

}

И затем, в любое время, когда ваш другой Действия должны использовать это соединение, им просто нужно вызвать getBtDevice () , потому что FirstActivity уже создал его.

Надеюсь, ваше требование заполнено полностью. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...