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

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

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

Bluetooth- приложение - Android

02.10.2015, 14:06. Просмотров 403. Ответов 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
Android Снова Bluetooth
Bluetooth Broadastreceiver Android
Bluetooth + Android Android
Android + PC + bluetooth Android
Bluetooth кнопка Android
UUID. Bluetooth connect Android
Bluetooth-чат Android
Android Узнать приложение которое запустило моё приложение
Android Bluetooth и два активити
Допиленное узкоспециализированное приложение или неповоротливое многофункциональное приложение? Android
Работа с bluetooth Android

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

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

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

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

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