Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
byulent
0 / 0 / 1
Регистрация: 21.09.2014
Сообщений: 16
#1

Обработка включения Bluetooth

08.07.2015, 22:17. Просмотров 833. Ответов 4
Метки нет (Все метки)

Есть код:
Java
1
2
3
4
5
6
7
8
9
       OnClickListener oclCheckBt = new OnClickListener() {
            public void onClick(View v){
                Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
                if(BluetoothAdapter.getDefaultAdapter().isEnabled()){
                    ((CheckedTextView) v).setChecked(true);
                }
            }
        };
Он должен включать синезуб, если тот не включен, и отмечать это в чекбоксе, а точнее, в CheckedTextView.
Но отмеченным чекбокс становится лишь после второго нажатия на элемент, когда уже всё включено.
Как сделать так, чтобы галочка ставилась сразу?
Думаю, что надо сделать что-то с интентами, но вот что - ума не приложу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 22:17
Ответы с готовыми решениями:

Bluetooth
Здравствуйте написал вот что package com.example.fdsafdfa; import...

Bluetooth кнопка
Здравствуйте , необходимо реализовать Bluetooth кнопку Arduino ---> Android ....

Bluetooth + Android
Здравствуйте! Начал я относительно недавно изучать Eclipse. Мне необходимо...

Bluetooth-чат
Добрый день форумчане! Решил задаться вопросом написать приложение которое...

Снова Bluetooth
Здравствуйте. Подскажите пожалуйста почему к простой нокии х2 например...

4
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
09.07.2015, 11:55 #2
byulent, вероятно условие
Java
1
if(BluetoothAdapter.getDefaultAdapter().isEnabled())
не выполняется т.к. на включение нужно какое-то время, а вы сразу проверяете, пока БТ еще не включен. Скорее всего его включение можно отловить в onActivityResult().
1
byulent
0 / 0 / 1
Регистрация: 21.09.2014
Сообщений: 16
09.07.2015, 16:44  [ТС] #3
Цитата Сообщение от Spelcrawler Посмотреть сообщение
byulent, вероятно условие
Код Java(TM) 2 Platform Standard Edition 5.0Выделить код
1
if(BluetoothAdapter.getDefaultAdapter().isEnabled())
не выполняется т.к. на включение нужно какое-то время, а вы сразу проверяете, пока БТ еще не включен. Скорее всего его включение можно отловить в onActivityResult().
Спасибо, я уже догадался, как это сделать.
Теперь такой вопрос: как сделать так, чтобы этот же чекбокс отмечался при включении блютуза из шторки? Тут уж я совсем не догадываюсь, что надо сделать.
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
09.07.2015, 16:56 #4
byulent,

Optionally, your application can also listen for the ACTION_STATE_CHANGED broadcast Intent, which the system will broadcast whenever the Bluetooth state has changed. This broadcast contains the extra fields EXTRA_STATE and EXTRA_PREVIOUS_STATE, containing the new and old Bluetooth states, respectively. Possible values for these extra fields are STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF, and STATE_OFF. Listening for this broadcast can be useful to detect changes made to the Bluetooth state while your app is running.
http://developer.android.com/guide/topics/connectivity/bluetooth.html
0
byulent
0 / 0 / 1
Регистрация: 21.09.2014
Сообщений: 16
11.07.2015, 22:47  [ТС] #5
Цитата Сообщение от Armagedo Посмотреть сообщение
http://developer.android.com/guide/t...bluetooth.html
К сожалению, не работает...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            brEnableBt = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                int scanStatus = intent.getIntExtra(BluetoothAdapter.EXTRA_SCAN_MODE, 0);
                Log.d("Log", String.valueOf(scanStatus));
                if (scanStatus == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE){
                    checkBluetooth.setChecked(true);
                    checkBluetooth.setClickable(false);
                } else {
                    checkBluetooth.setChecked(false);
                    checkBluetooth.setClickable(true);
                }
            }
        };
 
        IntentFilter edBtBrIntent = new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
        registerReceiver(brEnableBt, edBtBrIntent);
(Мне нужно также, чтобы устройство было видимым)
Так вот, если я включаю блютуз в шторке - не происходит ничего. При выключении в логи спокойно кидается двадцатка. И если только зайти в настройки, выключить и включить видимость - увидим 21 и 23.
0
11.07.2015, 22:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2015, 22:47

Bluetooth- приложение
Приложение устанавливается на телефон, при запуске вылетает с надписью: "В...

Работа с bluetooth
Доброго всем вечера. Я начинающий Android Разработчик. Перечитав немало...

Bluetooth Broadastreceiver
Привет всем. У меня возникла одна проблема. Я программирую Bluetooth...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru