Всем здравствуйте.Пытаюсь закончить программку, которая при первом запуске,активирует службу,постоянно обращающуюся к уже авторизированному на планшете сканеру по 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() определяет устройство как не подключенное?
Подключение bluetooth сканера через сервис
Подключение bluetooth сканера через сервис
Последний раз редактировалось denis88 16 фев 2015, 13:41, всего редактировалось 1 раз.
Re: Подключение bluetooth сканера через сервис
используй теги для кода, нечитабельно
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.