У меня есть проект на NativeScript, и я получаю доступ к API-интерфейсу Bluetooth android через JavaScript, как в этом примере:
android.bluetooth.BluetoothAdapter.getDefaultAdapter();
Я могу найти сопряженные устройства и подключиться к ним.Я хотел получить пример того, как переслать данные на устройство и получить возврат этого устройства.
Я видел что-то в документах на android о: getOutputStream ()
и getInputStream ()
, но я не знаю, как использовать это через JavaScript.
Я хочу отправить команду на устройство Elm327 OBD2 и получить данные с этого устройства.
Пример собственного кода:
private OutputStream outputStream;
private InputStream inStream;
private void init() throws IOException {
BluetoothAdapter blueAdapter = BluetoothAdapter.getDefaultAdapter();
if (blueAdapter != null) {
if (blueAdapter.isEnabled()) {
Set<BluetoothDevice> bondedDevices = blueAdapter.getBondedDevices();
if(bondedDevices.size() > 0) {
Object[] devices = (Object []) bondedDevices.toArray();
BluetoothDevice device = (BluetoothDevice) devices[position];
ParcelUuid[] uuids = device.getUuids();
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuids[0].getUuid());
socket.connect();
outputStream = socket.getOutputStream();
inStream = socket.getInputStream();
}
Log.e("error", "No appropriate paired devices.");
} else {
Log.e("error", "Bluetooth is disabled.");
}
}
}
public void write(String s) throws IOException {
outputStream.write(s.getBytes());
}
public void run() {
final int BUFFER_SIZE = 1024;
byte[] buffer = new byte[BUFFER_SIZE];
int bytes = 0;
int b = BUFFER_SIZE;
while (true) {
try {
bytes = inStream.read(buffer, bytes, BUFFER_SIZE - bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
}