Я новичок в программировании Android-устройств. Я делаю школьный проект, который включает Android (Mini-Xperia pro с Android 2.1) и Bluetooth-связь с устройством. Я пытаюсь идти шаг за шагом, чтобы освободить все материалы программирования и узнать все, что я могу.
У меня есть адаптер Bluetooth для ПК, я работаю с Windows XP, поэтому я только подключаю его и уже установил.
Хорошо, я работаю над образцом Bluetooth Chat, который поставляется с SDK, и я уже изменил UUID на:
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
С моим мобильным телефоном я ввел настройки и сделал мое устройство сопряженным с моим ПК (он говорит, что он сопряжен, но без коннекта).
Но я не знаю, что я делаю неправильно, потому что я открываю приложение для чата Bluetooth на своем мобильном устройстве, пытаюсь подключиться к моему компьютеру, и он говорит "не удается подключить устройство".
После множества попыток он подключается для передачи с ПК на телефон:
А
в
И соединение потеряно (это занимает менее 2 секунд!)
Может ли кто-нибудь помочь мне, пожалуйста, скажите мне, что я делаю неправильно или что проблема?
Спасибо.
Вам необходимо изменить код ConnectThread на следующее: Обратите внимание на код изменения, который создает сокет.
private class ConnectThread extends Thread {
private final BluetoothSocket mmSocket;
private final BluetoothDevice mmDevice;
public ConnectThread(BluetoothDevice device) {
mmDevice = device;
BluetoothSocket tmp = null;
Method m = null;
try {
m = device.getClass().getMethod("createRfcommSocket",
new Class[] {int.class});
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
tmp = (BluetoothSocket) m.invoke(device, 1);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mmSocket = tmp;
}
вам нужно запустить какое-то приложение, например, гипертерминал на стороне ПК через последовательный COM-порт Bluetooth, к которому подключается приложение Android.