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

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

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

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

02.10.2015, 14:06. Просмотров 781. Ответов 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"/>
кто знает с чем может быть связана проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2015, 14:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Bluetooth- приложение (Программирование Android):

Bluetooth - Программирование Android
Здравствуйте написал вот что package com.example.fdsafdfa; import java.io.OutputStream; import android.os.Bundle; import...

Допиленное узкоспециализированное приложение или неповоротливое многофункциональное приложение? - Программирование Android
Если вопрос про &quot;что нужно знать?&quot; висит, то и этот должен зайти. Появилась дилемма при выборе идеи для приложения, хочу узнать Ваше...

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

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

Работа с bluetooth - Программирование Android
Доброго всем вечера. Я начинающий Android Разработчик. Перечитав немало информации, так и не сложилась до конца картина, как...

Bluetooth-чат - Программирование Android
Добрый день форумчане! Решил задаться вопросом написать приложение которое будет позволять обмениваться сообщениями через Bluetooth канал....

3
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
02.10.2015, 14:18 #2
artemiys, показывайте логи ошибки
0
artemiys
2 / 2 / 1
Регистрация: 09.01.2015
Сообщений: 84
05.10.2015, 10:25  [ТС] #3
В логах пусто. Сейчас телефон выдает, что ошибка в синтаксисе приложения

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

Добавлено через 1 минуту
Теперь вопрос. Как выполнить передачу данных?Принимающее устройство сделано на basic. Если тут передается "1",то какие данные будет принимать это устройство?
0
artemiys
2 / 2 / 1
Регистрация: 09.01.2015
Сообщений: 84
07.10.2015, 12:11  [ТС] #4
Все разобрался. Тему можно закрывать
0
07.10.2015, 12:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2015, 12:11
Привет! Вот еще темы с ответами:

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

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

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

Узнать приложение которое запустило моё приложение - Программирование Android
Приветствую всех! Помогите разобраться. Есть ли возможность узнать, что за приложение запустило моё приложение? т.е. к примеру мою...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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