Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 4.87
Evgeny_
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
#1

Передача данных по Bluetooth - Программирование Android

04.09.2013, 11:51. Просмотров 6018. Ответов 4
Метки нет (Все метки)

Проблема в следующем, после определенного количества переданных байт(зависит от телефона, на huawei ~ 500, на nexus 4 ~ 1700) от Андроида к Ардуино передача обрывается, и приложение зависает после чего вылетает.
Вопрос заключается в том, как это исправить, такое ощущение, что перполняется буфер, но методов его очистки я не нашел. Пробовал
Java
1
OutputStream.flush();
не помогло
Передачу и подключение делаю через отдельный поток:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class ConnectedThread extends Thread{
 
    BluetoothAdapter bluetooth1;
    private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
    
    BluetoothSocket clientSocket;
    
    private  BluetoothSocket mmSocket;
    private OutputStream mmOutStream;
    OutputStream tmpOut = null;
 
        private static final String TAG = "bluetooth1";
    public ConnectedThread()
    {
        bluetooth1 = BluetoothAdapter.getDefaultAdapter();
         bluetooth1.enable();
        BluetoothDevice device = bluetooth1.getRemoteDevice("00:13:02:01:72:69");
    
      try {
          mmSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
        } catch (IOException e) {
          
        }
      bluetooth1.cancelDiscovery();
    
       try
       {
        mmSocket.connect();  
       }
       catch(IOException e)
       {}
       try {
           tmpOut = mmSocket.getOutputStream();
         
       } catch (IOException e) { }
       mmOutStream = tmpOut;
   }
    public void write(String message) {
            Log.d(TAG, "...Данные для отправки: " + message + "...");
         byte[] msgBuffer = message.getBytes();
            try {
                mmOutStream.write(msgBuffer);
                }
            } 
            catch (IOException e) {
                Log.d(TAG, "...Ошибка отправки данных: " + e.getMessage() + "...");     
              }
            }
             }
Соединение между Arduino и Android устанавливается по нажатию на кнопку следующим образом:
Java
1
2
 mConnectedThread = new ConnectedThread();
        mConnectedThread.start();
Само сообщение отправляется по событию изменения значения ProgressBar - onProgressChanged
Java
1
2
3
         public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {
mConnectedThread.write("48"); }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 11:51     Передача данных по Bluetooth
Посмотрите здесь:

Передача данных через bluetooth - Программирование Android
сразу скажу я новичок в программировании так что не судите строго о моем вопросе. допустим нужно сделать приложение которое запускает...

Передача данных андроид устр. - stm по bluetooth - Программирование Android
Здравствуйте, есть задача передавать данные с android планшета на на плату с микро-ом stm с bluetooth модулем. У bluetooth модуля...

Передача файлов через BlueTooth OPP / ContentResolver - Программирование Android
Друзья, помогите пожалуйста!!! Уже второй день пляшу с бубном. :( Передаю файл через BT OPP примерно так: ContentValues values...

Приём данных по Bluetooth - Программирование Android
Из Arduino посылается строка xx|xx|xx|xx|xx,xxxx|\n, где х-любое число. На андроиде получаю: х| x| x| x| итд. Подскажи как...

Получение и разбор данных по Bluetooth - Программирование Android
Всем привет. Очень нужна помощь, не могу найти решение. Задача такова, что с ардуино посылаются показания с датчиков и различные установки....

Как сделать передачу данных по bluetooth - Программирование Android
Создал приложение на телефон, которые отправляет на моего домашнего робота "1", плата которая стоит в роботе запрограммирована под Basic....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
04.09.2013, 12:38     Передача данных по Bluetooth #2
А у вас случайно в буфер приема инпутстрима ничего не попадает? Возможно он вызывает переполнение.
Evgeny_
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
04.09.2013, 12:43  [ТС]     Передача данных по Bluetooth #3
Нет, с ним пока что не работаю
Evgeny_
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
20.09.2013, 15:49  [ТС]     Передача данных по Bluetooth #4
Цитата Сообщение от korsaj Посмотреть сообщение
А у вас случайно в буфер приема инпутстрима ничего не попадает? Возможно он вызывает переполнение.
Да, действительно, оказалось, что ардуино посылает байты в ответ, а инпустрим у меня никак не обрабатывался, вследствие чего и возникала ошибка. Спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2013, 19:53     Передача данных по Bluetooth
Еще ссылки по теме:

Вывод данных полученных через Bluetooth на экран - Программирование Android
Есть датчик dht22 с него приходят 2 показателя: Температура и влажность,требуется получить данные по блютус на смартфон и вывести на экран....

Потеря данных полученных в Android от Arduino по Bluetooth (appinvertor) - Программирование Android
Отправляю сигналы с ардуино, с разных датчиков, в виде "имя датчика + уровень" Пробовал вот так: Serial1.print("pp"); //pp, pl, pc,...

Передача данных - Программирование Android
Всем доброго времени суток. Написал приложение на андроид 4.2 для планшета, так же есть программа для ноута. Суть в том что по...

Передача данных звуком - Программирование Android
На смартфоне получена медицинская информация. Требуется передать её в диагностический центр. Но в этьй деревне нет сотовой связи - только...

Передача данных в WebView - Программирование Android
Всем привет) У меня есть : WebView myWebView; void init(View v) { myWebView = (WebView)...

Передача данных по Wifi - Программирование Android
Всем доброго времени суток! Нуждаюсь в помощи... Пишу диплом на тему "Wifi осциллограф". Имеется такой wifi...


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

Или воспользуйтесь поиском по форуму:
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
20.09.2013, 19:53     Передача данных по Bluetooth #5
Незачто
Yandex
Объявления
20.09.2013, 19:53     Передача данных по Bluetooth
Ответ Создать тему
Опции темы

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