Страница 1 из 1

Подключение bluetooth сканера через сервис

Добавлено: 13 фев 2015, 16:34
denis88
Всем здравствуйте.Пытаюсь закончить программку, которая при первом запуске,активирует службу,постоянно обращающуюся к уже авторизированному на планшете сканеру по bluetooth каналу и считывает данные сканера в текстовый файл. Создал отдельный класс "public class SCANCODE extends BroadcastReceiver", который в свою очередь принимает данные от сканера:

public class ResultBarcode extends BroadcastReceiver{

public static final String FILENAME = "BARCODE.txt"; //Имя текстового файла
public static final String FILEPATH = "/mnt/sdcard/downloads"; //путь для файла "BARCODE.txt"

@SuppressLint("NewApi")
public void onReceive(Context context, Intent intent) {

// ScanService - класс service, в которой объявлены следующие переменные:
// public static BluetoothAdapter btAdapter;
// public static BluetoothDevice btDevice;
// public static BluetoothSocket btSocket;
// public static OutputStream outStream = null;
// public static String MY_UUID = "00001101-0000-1000-8000-00805F9B34FB";

ScanService.btAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> SetDevice = ScanService.btAdapter.getBondedDevices();

for (BluetoothDevice dev : SetDevice){ //выбираю Сканер
ScanService.btDevice = dev;
}

if (ScanService.btDevice == null) {
Toast.makeText(context,"Не найдено устройство" , Toast.LENGTH_LONG).show();
return;
}

UUID uuid = UUID.fromString(ScanService.MY_UUID);
try {
ScanService.btSocket = ScanService.btDevice.createRfcommSocketToServiceRecord(uuid);
} catch (IOException ex) {
Toast.makeText(context,"Ошибка определения сокета" , Toast.LENGTH_LONG).show();
return;
}
ScanService.btAdapter.cancelDiscovery();

if(ScanService.btSocket == null || !ScanService.btSocket.isConnected()){ // проверяем подключено ли устройство через сокет
try {
ScanService.btSocket.connect();//подключаем устройство
} catch (IOException ex1) {
ex1.printStackTrace();
Toast.makeText(context,"Ошибка подключения" , Toast.LENGTH_LONG).show();
return;
}

}else{
Toast.makeText(context,"Устройство подключено" , Toast.LENGTH_LONG).show();
}
Далее в продолжении кода запись файл, но вопрос касается только автоматического подключения сопряженных устройств. ПРограмма сейчас работает так. Первый запуск - сканер подключается а дальше проверка ScanService.btSocket.isConnected() не срабатывает как будто, идет подключение по новой. Может я где то переменную не объявил, или почему ScanService.btSocket.isConnected() определяет устройство как не подключенное?

Re: Подключение bluetooth сканера через сервис

Добавлено: 13 фев 2015, 17:02
doter.ua
используй теги для кода, нечитабельно