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

Снова Bluetooth - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android различие в GPS для различных моделей телефонов http://www.cyberforum.ru/android-dev/thread969049.html
Добрый вечер. Возможно не совсем корректно назвал тему, тем не менее. Есть задача - написать программу использующую GPS для получения текущих координат пользователя. Возник вопрос - будут ли отличия при работе приложения на различных моделях. Одни говорят да, другие нет - стандарт то один. Хотелось бы услышать мнение специалиста. Буду благодарен любому совету.
Android take multiple photos Всем привет. По умолчанию, код Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); Uri fileUri = Uri.fromFile(fullFilePath); intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); startActivityForResult(intent, PHOTO_CAPTURE); вызывает приложение Камера и позволяет сделать один снимок, который потом благополучно вернет, точнее сохранит по пути fullFilePath. А что делать если нужно... http://www.cyberforum.ru/android-dev/thread969022.html
Хранение объектов со звуком Android
Всем привет. Хранится ли в экземпляре AudioRecord запись с микрофона, если перед этим применить методы audioRecord.startRecording(), audioRecord.stop()? Мне нужно создать коллекцию ArrayList звуков, наполняемых записью с микрофона, потом проигрывать эти звуки, вызывая соответствующие элементы коллекции. Добавлено через 18 часов 52 минуты Никто не знает или дурацкий вопрос? ) Добавлено...
Android Вызов методов Context из статичного контекста
Столкнулся с тем, что не могу получить содержимое ресурса из созданных классов. К примеру getString() не доступен. Нашел такой вариант решения: http://habrahabr.ru/post/134006/ public class ApplicationContext extends android.app.Application { @NotNull private static ApplicationContext instance; public ApplicationContext() { instance = this;
Android Выборка из базы http://www.cyberforum.ru/android-dev/thread968741.html
Как выбрать из базы id той записи у которой в столбце5 самая низкое (наименьшее) значение ????
Android Как передать тег (view.setTag(holder) Здравствуйте! Использую адаптер и у меня он вида: class ItemAdapter extends BaseAdapter { private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); private class ViewHolder { public TextView text; подробнее

Показать сообщение отдельно
Maksim2309
45 / 45 / 2
Регистрация: 17.01.2013
Сообщений: 328

Снова Bluetooth - Android

05.10.2013, 16:44. Просмотров 1561. Ответов 2
Метки (Все метки)

Здравствуйте. Подскажите пожалуйста почему к простой нокии х2 например подключаюсь запросто, а к Android`у или к ПК не могу ошибка вылазиет. Вот код подозреваю из-за UUID, но фиг его знает
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
package com.example.conpc;
 
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;
 
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.widget.CompoundButton;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.bluetooth.*;
import android.content.Intent;
 
public class MainActivity extends Activity {
    
    ToggleButton btn;
    BluetoothAdapter btAdapter = null;
        // Ни так ни так не работает
    public static UUID My_UUID = UUID.randomUUID();//UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
    public static String adress = "F4:E5:43:34:67:A3";
    BluetoothSocket mSocket = null;
    private static final String TAG = "bluetooth1";
    private OutputStream outStream = null;  
    private static final int REQUEST_ENABLE_BT = 1;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (ToggleButton) findViewById(R.id.btn_en);
        btAdapter = BluetoothAdapter.getDefaultAdapter();
        checkBTState();
        
        btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    sendData("1");
                    Toast.makeText(getBaseContext(), "Включаем LED", Toast.LENGTH_SHORT).show();
                } else {
                    sendData("0");
                    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(adress);
      
      
      // 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 {
        mSocket = 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 {
        mSocket.connect();
        Log.d(TAG, "...Соединение установлено и готово к передачи данных...");
      } catch (IOException e) {
        try {
          mSocket.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 = mSocket.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     {
        mSocket.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 (adress.equals("00:00:00:00:00:00")) 
            msg = msg + ".\n\nВ переменной address у вас прописан 00:00:00:00:00:00, вам необходимо прописать реальный MAC-адрес Bluetooth модуля";
            msg = msg +  ".\n\nПроверьте поддержку SPP UUID: " + My_UUID.toString() + " на Bluetooth модуле, к которому вы подключаетесь.\n\n";
            
            errorExit("Fatal Error", msg);       
        }
      }
    
}
Вот лог:
Кликните здесь для просмотра всего текста
10-04 21:01:30.070: D/dalvikvm(1627): Late-enabling CheckJNI
10-04 21:01:30.140: E/Trace(1627): error opening trace file: No such file or directory (2)
10-04 21:01:30.150: D/ActivityThread(1627): setTargetHeapUtilization:0.25
10-04 21:01:30.150: D/ActivityThread(1627): setTargetHeapIdealFree:8388608
10-04 21:01:30.150: D/ActivityThread(1627): setTargetHeapConcurrentStart:2097152
10-04 21:01:30.230: D/bluetooth1(1627): ...Bluetooth включен...
10-04 21:01:30.230: D/bluetooth1(1627): ...onResume - попытка соединения...
10-04 21:01:30.230: I/BluetoothSocket.cpp(1627): Setting Master socket option
10-04 21:01:30.240: D/bluetooth1(1627): ...Соединяемся...
10-04 21:01:42.240: D/bluetooth1(1627): ...Создание Socket...
10-04 21:01:42.310: D/libEGL(1627): loaded /system/lib/egl/libEGL_adreno200.so
10-04 21:01:42.310: D/libEGL(1627): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
10-04 21:01:42.310: D/libEGL(1627): loaded /system/lib/egl/libGLESv2_adreno200.so
10-04 21:01:42.320: I/Adreno200-EGL(1627): <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build: (Merge)
10-04 21:01:42.320: I/Adreno200-EGL(1627): Build Date: 07/09/13 Tue
10-04 21:01:42.320: I/Adreno200-EGL(1627): Local Branch: AU_41
10-04 21:01:42.320: I/Adreno200-EGL(1627): Remote Branch:
10-04 21:01:42.320: I/Adreno200-EGL(1627): Local Patches:
10-04 21:01:42.320: I/Adreno200-EGL(1627): Reconstruct Branch:
10-04 21:01:42.350: D/OpenGLRenderer(1627): Enabling debug mode 0
10-04 21:01:44.760: D/bluetooth1(1627): ...Посылаем данные: 1...
10-04 21:01:44.780: E/BluetoothSocket(1627): java.io.IOException: socket closed
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.bluetooth.BluetoothSocket.write(BluetoothSocket.java:398)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.bluetooth.BluetoothOutputStream.write(BluetoothOutputStream.java:89)
10-04 21:01:44.780: E/BluetoothSocket(1627): at java.io.OutputStream.write(OutputStream.java:82)
10-04 21:01:44.780: E/BluetoothSocket(1627): at com.example.conpc.MainActivity.sendData(MainActivity.java:145)
10-04 21:01:44.780: E/BluetoothSocket(1627): at com.example.conpc.MainActivity.access$0(MainActivity.java:139)
10-04 21:01:44.780: E/BluetoothSocket(1627): at com.example.conpc.MainActivity$1.onCheckedChanged(MainActivity.java:39)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.widget.CompoundButton.setChecked(CompoundButton.java:130)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.widget.ToggleButton.setChecked(ToggleButton.java:73)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.widget.CompoundButton.toggle(CompoundButton.java:91)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.widget.CompoundButton.performClick(CompoundButton.java:103)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.view.View$PerformClick.run(View.java:17161)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.os.Handler.handleCallback(Handler.java:615)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.os.Handler.dispatchMessage(Handler.java:92)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.os.Looper.loop(Looper.java:213)
10-04 21:01:44.780: E/BluetoothSocket(1627): at android.app.ActivityThread.main(ActivityThread.java:4787)
10-04 21:01:44.780: E/BluetoothSocket(1627): at java.lang.reflect.Method.invokeNative(Native Method)
10-04 21:01:44.780: E/BluetoothSocket(1627): at java.lang.reflect.Method.invoke(Method.java:511)
10-04 21:01:44.780: E/BluetoothSocket(1627): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
10-04 21:01:44.780: E/BluetoothSocket(1627): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
10-04 21:01:44.780: E/BluetoothSocket(1627): at dalvik.system.NativeStart.main(Native Method)
10-04 21:01:44.850: D/bluetooth1(1627): ...In onPause()...


Добавлено через 21 час 42 минуты
Тема еще актуальна, друзья помогайте.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru