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

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

Войти
Регистрация
Восстановить пароль
 
artemiys
2 / 2 / 1
Регистрация: 09.01.2015
Сообщений: 78
#1

Bluetooth- приложение - Программирование Android

02.10.2015, 14:06. Просмотров 570. Ответов 3
Метки нет (Все метки)

Приложение устанавливается на телефон, при запуске вылетает с надписью: "В приложение произошла ошибка" в чем может быть проблема. Версия андроида совпадает с заявленной при создании проекта
код в MainActivity.java
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
package ru.at.blabla;
 
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;
 
import ru.at.blabla.R;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity {
      private static final String TAG = "bluetooth1";
     
      Button button1, button2;//Указываем id наших кнопок
     
      private static final int REQUEST_ENABLE_BT = 1;
      private BluetoothAdapter btAdapter = null;
      private BluetoothSocket btSocket = null;
      private OutputStream outStream = null;
     
      // SPP UUID сервиса 
      private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
      // MAC-адрес Bluetooth модуля
      private static String address = "00:01:95:07:77:4B";  //Вместо “00:00” Нужно нудет ввести MAC нашего bluetooth
     
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     
        setContentView(R.layout.main);
     
        button1 = (Button) findViewById(R.id.button1); //Добавляем сюда имена наших кнопок
        button2 = (Button) findViewById(R.id.button2);
     
        btAdapter = BluetoothAdapter.getDefaultAdapter();
        checkBTState();
     
        button1.setOnClickListener(new OnClickListener()  //Если будет нажата кнопка 1 то
        { 
          public void onClick(View v) 
          {
            sendData("1");         // Посылаем цифру 1 по bluetooth
            Toast.makeText(getBaseContext(), "Включаем LED", Toast.LENGTH_SHORT).show();  //выводим на устройстве сообщение
          }
        });
     
        button2.setOnClickListener(new OnClickListener() {
          public void onClick(View v) 
            {
            sendData("2"); // Посылаем цифру 1 по bluetooth
            Toast.makeText(getBaseContext(), "Выключаем LED", Toast.LENGTH_SHORT).show(); 
          }
        });
      }
     
      @Override
      public void onResume() {
        super.onResume();
     
        Log.d(TAG, "...onResume - попытка соединения...");
     
        // Set up a pointer to the remote node using it's address.
        BluetoothDevice device = btAdapter.getRemoteDevice(address);
     
        // Two things are needed to make a connection:
        //   A MAC address, which we got above.
        //   A Service ID or UUID.  In this case we are using the
        //     UUID for SPP.
        try {
          btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
        } catch (IOException e) {
          errorExit("Fatal Error", "In onResume() and socket create failed: " + e.getMessage() + ".");
        }
     
        // Discovery is resource intensive.  Make sure it isn't going on
        // when you attempt to connect and pass your message.
        btAdapter.cancelDiscovery();
     
        // Establish the connection.  This will block until it connects.
        Log.d(TAG, "...Соединяемся...");
        try {
          btSocket.connect();
          Log.d(TAG, "...Соединение установлено и готово к передачи данных...");
        } catch (IOException e) {
          try {
            btSocket.close();
          } catch (IOException e2) {
            errorExit("Fatal Error", "In onResume() and unable to close socket during connection failure" + e2.getMessage() + ".");
          }
        }
     
        // Create a data stream so we can talk to server.
        Log.d(TAG, "...Создание Socket...");
     
        try {
          outStream = btSocket.getOutputStream();
        } catch (IOException e) {
          errorExit("Fatal Error", "In onResume() and output stream creation failed:" + e.getMessage() + ".");
        }
      }
     
      @Override
      public void onPause() {
        super.onPause();
     
        Log.d(TAG, "...In onPause()...");
     
        if (outStream != null) {
          try {
            outStream.flush();
          } catch (IOException e) {
            errorExit("Fatal Error", "In onPause() and failed to flush output stream: " + e.getMessage() + ".");
          }
        }
     
        try     {
          btSocket.close();
        } catch (IOException e2) {
          errorExit("Fatal Error", "In onPause() and failed to close socket." + e2.getMessage() + ".");
        }
      }
     
      private void checkBTState() {
        // Check for Bluetooth support and then check to make sure it is turned on
        // Emulator doesn't support Bluetooth and will return null
        if(btAdapter==null) { 
          errorExit("Fatal Error", "Bluetooth не поддерживается");
        } else {
          if (btAdapter.isEnabled()) {
            Log.d(TAG, "...Bluetooth включен...");
          } else {
            //Prompt user to turn on Bluetooth
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
          }
        }
      }
     
      private void errorExit(String title, String message){
        Toast.makeText(getBaseContext(), title + " - " + message, Toast.LENGTH_LONG).show();
        finish();
      }
     
      private void sendData(String message) {
        byte[] msgBuffer = message.getBytes();
     
        Log.d(TAG, "...Посылаем данные: " + message + "...");
     
        try {
          outStream.write(msgBuffer);
        } catch (IOException e) {
          String msg = "In onResume() and an exception occurred during write: " + e.getMessage();
          if (address.equals("00:01:95:07:77:4B")) 
            msg = msg + ".\n\nВ переменной address у вас прописан 00:01:95:07:77:4B, вам необходимо прописать реальный MAC-адрес Bluetooth модуля";
            msg = msg +  ".\n\nПроверьте поддержку SPP UUID: " + MY_UUID.toString() + " на Bluetooth модуле, к которому вы подключаетесь.\n\n";
     
            errorExit("Fatal Error", msg);       
        }
      }
    }
Добавление в имеющемся коде в манифесте
Java
1
2
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
кто знает с чем может быть связана проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2015, 14:06     Bluetooth- приложение
Посмотрите здесь:

Снова Bluetooth - Программирование Android
Здравствуйте. Подскажите пожалуйста почему к простой нокии х2 например подключаюсь запросто, а к Android`у или к ПК не могу ошибка...

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

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

Android + PC + bluetooth - Программирование Android
Где и как можно написать такую связку приложений -&gt; на компьютере сервер на андроид устройстве клиент как послать с андроида на пк...

Bluetooth кнопка - Программирование Android
Здравствуйте , необходимо реализовать Bluetooth кнопку Arduino ---&gt; Android . Т.е. жмем кнопку на МК --&gt; МК формирует данные и отсылает по...

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

Bluetooth. Поиск устройств - Программирование Android
Всем привет. Подскажите пожалуйста как правильно написать поиск устройств. Читал несколько статей и никак не могу понять как написать код,...

Проверка подключения по bluetooth - Программирование Android
Не подскажите, как можно проверять активно ли подключение по bluetooth? У меня есть два устройства, связь между ними устанавливается без...

UUID. Bluetooth connect - Программирование Android
Вопрос достаточно банальный. Какое UUID мне нужно установить при подключении к серверу через Bluetooth? Для начала объясните плиз, для чего...

Обработка включения Bluetooth - Программирование Android
Есть код: OnClickListener oclCheckBt = new OnClickListener() { public void onClick(View v){ ...

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

Кто работал с Bluetooth? - Программирование Android
Добрый день! Нужна теоретическая помощь в написании одного Bluetooth-приложение. Просто скажите, в какую сторону &quot;копать&quot; информацию....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
02.10.2015, 14:18     Bluetooth- приложение #2
artemiys, показывайте логи ошибки
artemiys
2 / 2 / 1
Регистрация: 09.01.2015
Сообщений: 78
05.10.2015, 10:25  [ТС]     Bluetooth- приложение #3
В логах пусто. Сейчас телефон выдает, что ошибка в синтаксисе приложения

Добавлено через 1 час 25 минут
Исправил. Сделал поддержку андроида на версию ниже и помогло

Добавлено через 1 минуту
Теперь вопрос. Как выполнить передачу данных?Принимающее устройство сделано на basic. Если тут передается "1",то какие данные будет принимать это устройство?
artemiys
2 / 2 / 1
Регистрация: 09.01.2015
Сообщений: 78
07.10.2015, 12:11  [ТС]     Bluetooth- приложение #4
Все разобрался. Тему можно закрывать
Yandex
Объявления
07.10.2015, 12:11     Bluetooth- приложение
Ответ Создать тему
Опции темы

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