Вы должны создать подключение к устройству, как описано в учебнике Питер указал .
- Обнаружить устройства и предоставить пользователю список для выбора.Я предполагаю, что вы сделали это, и теперь у вас есть переменная
BluetoothDevice device
, установленная для вашего устройства. Подключение в качестве клиента:
// This is the default UUID you set for connection - it should work
private static final UUID DEFAULT_SPP_UUID = UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB");
// ....
BluetoothSocket bluetoothSocket = device
.createRfcommSocketToServiceRecord(DEFAULT_SPP_UUID);
// ....
bluetoothSocket.connect(); // Do this when you want to start data retrieval
Получение информации,Теперь вы можете открыть InputStream
, из которого сообщения NMEA приходят в виде простого текста.Таким образом, вы можете использовать BufferedReader
для удобства и читать сообщения построчно.Примерно так:
// After successful connect you can open InputStream
InputStream in = bluetoothSocket.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
while (true) {
String nmeaMessage = br.readLine();
Log.d("NMEA", nmeaMessage);
// parse NMEA messages
}
// !!!CLOSE Streams!!!
ПОМНИТЕ: этот код очень упрощен.В реальном приложении каждое соединение с сетью, устройством или ресурсом файловой системы должно быть закрыто, когда это не нужно, ошибки (исключения) должным образом обрабатываются и отображаются пользователю в читаемом и понятном формате.