Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 25.09.2015
Сообщений: 25

Bluetooth получение удаленного устройства

08.05.2017, 17:29. Показов 1641. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вдруг перестали запускаться приложения,по логам ссылается на final BluetoothDevice device = Blut.getRemoteDevice(MyAdress) , все что знал перепробовал , вроде раньше рабочие примеры были.
В чём дело подскажите пожалуйста?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
package blubln03.xu;
 
import android.app.Activity;
import android.os.Bundle;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.bluetooth.*;
import android.graphics.Color;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.bluetooth.BluetoothAdapter;
 
 
 
public class MainActivity extends Activity {
    
    BluetoothAdapter  Blut=null;
    Set<BluetoothDevice>pairedDevices;
    private BluetoothSocket btSocket = null;
   private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
   private ConnectedThred MyThred = null;
    public static String MyAdress="98:D3:31:40:18:E3"; //это адрес модуля для эксперементов ,имя  boller на всяк случ
   Handler han;
    String sim="#"; //Символ контроля
    int  timStep=0;
     public int ManAuto=0;
     public byte AMvoda=1; 
    TextView tx1,tx2,tx3,tx4;
    Button kn1,kn2,kn3,kn4,kn5;
    public int redft=0;
     public int flag_connect=0;// если есть соединение то 1, нет 0
    
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        tx1 = (TextView)findViewById(R.id.textView1);
        tx2 = (TextView)findViewById(R.id.textView2);
        tx3 = (TextView)findViewById(R.id.textView3);
        tx4 = (TextView)findViewById(R.id.textView4);
            
        kn1 = (Button)findViewById(R.id.button1); // вкл тен
        kn2 = (Button)findViewById(R.id.button2); // авт тен
        kn3 = (Button)findViewById(R.id.button3); // вкл кабина
        kn4 = (Button)findViewById(R.id.button4); // авт кабина
        kn5 = (Button)findViewById(R.id.button5); // авт кабина
        
                
         /** Handler это механизм, который позволяет работать с очередью сообщений. 
          *  как только получаеться прочитать данные система даёт команду Handler
          *  на обработку Соэдаём свой Handler    **/ 
            han = new Handler() {
            public void handleMessage(android.os.Message msg) {//метод обработки сообщений handleMessage
            switch (msg.what) {
            case 1: byte[] readBuf = (byte[]) msg.obj;
                    String strIncom = new String(readBuf, 0, msg.arg1); //Преобразуем полученное сообщение в строку                                         
                //deCoder(strIncom); //распазноём код
                 break;
            }
            };
            };  
            //BlueConec();
            }
            public void BluConec(View view){
        /**Создадим экземпляр класса BluetoothAdapter
         *(отвечающий за работу с установленным в андроиде БТ модулем): **/
                 Blut=BluetoothAdapter.getDefaultAdapter(); 
                 if (Blut.isEnabled()){    // проверяем велючен или нет   
                }else
                {
                    /** Сдесь предлогаем вклучить ВТ 
                     * надо проверить что означает второй аргумент 
                     * startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
                     */
                    
                    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivityForResult(enableBtIntent, 1);    //прозьба включить       
          } 
            }  
            public void VklVater(View view){
                
        //final  BluetoothDevice device = Blut.getRemoteDevice(MyAdress);   
                
                
            }
            
              @Override
                public void onPause() {
                  super.onPause();
                
                  if (MyThred.status_OutStrem() != null) {
                      MyThred.cancel();
                  }
                
                  try     {
                    btSocket.close();
                  } catch (IOException e2) {
                  }
                }   
              @Override
                /** onResume – это одно из состояний нашего Activity,
                 *  Activity видно на экране,
                 *   основной код подключения разместим в onResume
                 */
            public void onResume() {
                    super.onResume();
                    
                    // Получаем удаленное устройство по его MAC адресу
                final   BluetoothDevice device = Blut.getRemoteDevice(MyAdress);     
                try {
                       /** Досту получин теперь создаём Socket (соединение)
                        * для передачи денных от андроида где
                        * где UUID — это стандарт идентификации,   
                        */
                        
                     btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
                          
                          } catch (IOException e) {
                           
                          }  
                        
                        Blut.cancelDiscovery(); //отменяем поиск других устройств       
                      
                        try {
                          btSocket.connect();  //Попытаемся подсоединиться
                        
                        } catch (IOException e) {
                          try {
                            btSocket.close();  // При не удаче закроем сокет:
                          } catch (IOException e2) {
                          
                          }
                        }
                        if(btSocket.isConnected()){
                      
                       kn5.setBackgroundColor(Color.GREEN);// если есть соединение  то зелёный 
                       flag_connect=1;
                        }
                        else{
                        kn5.setBackgroundColor(Color.RED);  //нет то красный
                        flag_connect=0;
                        }
                        MyThred = new ConnectedThred(btSocket);     
                        MyThred.start();
                      }  
              //Отдельный поток для передачи данных  
               private class ConnectedThred extends Thread{
                   private final BluetoothSocket copyBtSocket;
                   private final OutputStream OutStrem;
                   private final InputStream InStrem;
                   
                   public ConnectedThred(BluetoothSocket socket){
                       copyBtSocket = socket;
                       OutputStream tmpOut = null;
                       InputStream tmpIn = null;
              // Получаем вход и выход данных, используя объекты временного секретаря, 
              // потому что потоки члена заключительны
                       
                       try{
                           tmpOut = socket.getOutputStream();
                           tmpIn = socket.getInputStream();
                       } catch (IOException e){}
                       
                       OutStrem = tmpOut;
                       InStrem = tmpIn;
                   }
                   
                   public void run()  //В потоке для передачи данных добавим функцию запуска этого потока
                   {
                       byte[] buffer = new byte[1024];//
                       int bytes; //
                     
                       while(true){ // и разместим там цикл с функцией чтения данны
                         // не выйдем пока не прочитаем всё 
                           try{
                   //Читаем от InputStream           
                               bytes = InStrem.read(buffer);
                    //Проверяем сообщения
                       han.obtainMessage(1, bytes, -1, buffer).sendToTarget();
                           }catch(IOException e){break;} 
                           
                       } 
                       
                   }
                   
                   public void sendData(String message) {
                          byte[] msgBuffer = message.getBytes();
                        try {
                            OutStrem.write(msgBuffer);
                          } catch (IOException e) {}
                  }
                
                   public void cancel(){
                       try {
                           copyBtSocket.close();
                       }catch(IOException e){}           
                   }
                   
                   public Object status_OutStrem(){
                       if (OutStrem == null){return null;       
                       }else{return OutStrem;}
                   }
               } 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2017, 17:29
Ответы с готовыми решениями:

Не ищет устройства (Bluetooth)
Взял пример с сайта. Запускаю в режиме отладки (android studio). Ничего не находит. В чём проблема? Ошибки в коде? Или же поиск устройств...

Просмотр файлов другого устройства по Bluetooth
Здраствуйте, мне нужна помощь (я начинаю только программировать на андроид). Как на сэмпловском примере блютуз чата можно сделать...

Получение данных от Bluetooth
Доброго времени суток, помогите разобраться, не получается отделить мух от котлет, суть: с ардуино отправляю данные, а на андроиде хочу...

1
1 / 1 / 0
Регистрация: 25.09.2015
Сообщений: 25
04.06.2017, 16:39  [ТС]
Так я не нашел в чём дело, но когда включаешь блютуз до старта программы, программа стартует без проблем.
И следом вопрос вот этот код
Java
1
2
3
4
5
6
7
8
9
 if(btSocket.isConnected()){
                      
                       kn5.setBackgroundColor(Color.GREEN);// если есть соединение  то зелёный 
                       flag_connect=1;
                        }
                        else{
                        kn5.setBackgroundColor(Color.RED);  //нет то красный
                        flag_connect=0;
                        }
почему то определяется как лож даже при хорошем соединении.
Я не думаю что проблема в коде, так как на другом телефоне всё работало,
может есть другие примеры решения проблемы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2017, 16:39
Помогаю со студенческими работами здесь

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

Получение контента из удалённого файла и вывод его в Toast
Всем привет, начал заниматься программированием под Android совсем недавно. Вот который день мучаюсь с простейшим кодом. Даже решил...

Подключение к Bluetooth модулю и получение от него информации
Доброго времени суток, просьба скинуть ссылки или поделиться информацией по данной теме.

Получение названия устройства из файла устройства
Как получить название устройства из файла устройства?

Bluetooth в андроид на два устройства
Здравствуйте, я на своём планшете андроид 4.2.2 пользуясь интернетом через блютуз. Сейчас появилась потребность подключить мышку, но тоже...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru