С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Где лучше хранить информацию для приложения? http://www.cyberforum.ru/android-dev/thread947790.html
Суть вот в чем, есть много программ типа справочник. Мне интересно как реализовано второе активити. В первом понятно, список. А во втором информация. Для нее нужно делать базу? или не обязательно,...
Программирование Android Получение email писем Здравствуйте. Я пишу приложение - почтовый клиент. Сейчас уже работает отправка сообщений и хранение учетных записей нескольких почтовых сервисов. Теперь требуется сделать загрузку сообщений из... http://www.cyberforum.ru/android-dev/thread947749.html
Программирование Android Событие когда выбран item в спиннере
spiner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // показываем позиция нажатого...
Программирование Android Доступ к бд
Добрый вечер! Есть сайт на php+mysql, хочу создать простенькое приложение на андроиде, где первым активити будет авторизация/регистрация. Подскажите как общаться с бд сайта, слышал что соединение...
Программирование Android Содержимое ActionBar Tabs перекрывают ActionBarCompat http://www.cyberforum.ru/android-dev/thread947285.html
Здравствуйте! Уже несколько дней пытаюсь использовать ActionBar Tabs, но при запуске на старых устройствах ниже v11, view фрагмента, который отображает содержимое вкладки, выводится во весь экран,...
Программирование Android Рисование графики задача: программно рисовать чертежи как на картинках. Требования: зумирование (масштабирование), различные типы фигур (не только как на картинке), размеры задаются пользователем и при этом чертеж... подробнее

Показать сообщение отдельно
Evgeny_
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9

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

04.09.2013, 11:51. Просмотров 6363. Ответов 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"); }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.