Socket Mobile and Web Bluetooth - bluetooth

Hey Socket Mobile team,
I was wondering if you have plans on integrating with Web Bluetooth. I've tried connecting to my Socket Mobile D750 from chrome://bluetooth-internals on Chrome version 59.0 but I'm getting an error that says Unsupported_Device.
I have the scanner in HID mode. Chrome's documentation says that it supports BLE 4.0, but I couldn't find which version of BLE your scanners have.

No plans right now.
At the time of writing, none of our barcode scanners have BLE. The recently announced D600 RFID reader uses BLE and supports reading using HID mode or a GATT profile - but you wouldn't be able to write tags
However, the upcoming Capture SDK uses HTTP on Android and Windows to communicate between your app and the service. If you are targeting those platforms and are okay with being on the bleeding edge, you could write your own Javascript client.

Related

Sending Beacon Signals from a Web Browser

I'd like to send a beacon signal from my mobile web browser. Is there a way to broadcast BLE in a browser?
I checked the non-standard Bluetooth API, but there was no such function.
Thank you for reading it.
Unfortunately there doesn't seem to be support for this yet. There's an open request for this feature as can be seen here:-
https://bugs.chromium.org/p/chromium/issues/detail?id=1043409
https://github.com/WebBluetoothCG/web-bluetooth/issues/231
More information about web bluetooth support is found here:-
Start building with web bluetooth and progressive web apps
Web bluetooth demos
Web bluetooth sample code

Can chrome web bluetooth api connect to a Bluetooth V4 device?

I have read that Web Bluetooth API can connect to Bluetooth BLE devices. I understand that BLE is a part of Bluetooth V4, but will Web Bluetooth connect to a regular V4 device that is not BLE?
The version number in Bluetooth is mostly irrelevant. More optional features are added in every new version, but that's it. BLE was added in version 4. "Regular V4 devices" does not make sense. If you refer to "Bluetooth Classic" or BR/EDR devices, these are not BLE devices. However you will be able connect to these devices in Web Bluetooth if they run a GATT server, if the OS supports it, since GATT can also run over BR/EDR.

Progressive web app beacon search

Is it possible to search for beacon data (uuid, url, ...) with a progressive web application using just web technologies that is without using native mobile technologies (Android, ios, ...)?
Thanks in advance.
Unfortunately, this is not possible as of July 2020. While Google has been working on the WebBluetooth project to bring support for many bluetooth operations to the browser, at least in Google Chrome implementations on Android 6+, Mac or ChromeOS.
Scanning for beacons is not yet possible as of this writing. The API requires that the OS scan for devices matching a requested criteria, and then let the user choose a device to connect to using a user interface. This essentially rules out beacon detection.
Bluetooth scanning APIs are still in draft form here.
EDIT: The APIs mentioned by #zurfyx in the answer below allow you to scan for and connect to an advertised GATT service, but do not allow you to read the data in the advertisement. This is a critical distinction, as reading the data in the advertisement is the key capability required for actual bluetooth beacon detection. That capability is missing from that API. Without that capability, it is impossible to detect a beacon, it is only possible to connect to a BLE device that might be an Eddystone or other service advertisement-based beacon.
UPDATE July 2020: Safari will not be getting any WebBluetooth APIs at all due to privacy concerns, according to a June 2020 announcement by Apple This makes Bluetooth scanning impossible on iOS we apps for the foreseeable future.
As of July 2020, Chrome does not support scanning arbitrary advertisements. See status here: https://github.com/WebBluetoothCG/web-bluetooth/blob/master/implementation-status.md
Disclaimer: I wrote eddystone-web-bluetooth (a library which makes it easy to read and write to an Eddystone device). github#eddystone-web-bluetooth npm#eddystone-web-bluetooth
It is possible to scan for Bluetooth devices by using the Web Bluetooth API (currently supported only by Chrome).
By using Bluetooth GATT service, you can connect to Eddystone devices and send/receive data by communicating following their public specifications (which are basically a list of request codes, and the format in which to send and expect their responses).
These services include information such as:
URL
Advertising interval
Lock state
and more
By using the Bluetooth standard information you can get to know the most generic device information, such as its id and name:
navigator.bluetooth.requestDevice
#beaufortfrancois wrote the probably first Eddystone Web Bluetooth configuration code (source code / demo), so it is probably worth a read if you want to dig more into this. I learned a lot from it.

AVRCP for Windows phone 8?

I have a project for multimedia player running on WP8. Does WP8 SDK supports AVRCP that user can control playback from Bluetooth device? What APIs or events I should use to receive control events? Thanks!
From a consumer perspective WP7 OS supports BT-AVRCP 1.3 and so does WP8 OS. Based on MSDN the BT-AVRCP 1.4 profile is supported for WP8.
From a developer perspective BT-SPP is supported for direct developer reads & writes. I'm not sure if WP8 can successfully open a BT-AVRCP socket, so go ahead and try to open a socket to one and see what happens.
If you're just trying to play Audio on a Bluetooth headset, use the plain-old WP7/WP8 media playback classes and use the new WP8 AudioRoutingManager to force output on bluetooth headset.
AudioRoutingManager.SetAudioEndpoint(AudioRoutingEndpoint.Bluetooth)

mobile receipt printing with J2ME via Bluetooth

I need to make an app in J2ME that can be able to read a SMS and then print it on an epson tm-p60 printer(ESC/POS emulation) via bluetooth.
i looked at the epson supprt site but the only ADK/drivers they provide are for:
1.Sun Java2 SDK Standard Edition Version 1.4.2_10
2.Sun Java2 SDK Standard Edition Version 1.4.2_04
3.Sun Java SE Development Kit 6 Update 3
so i don't know how am i gonna be able to use ESC/POS commands inJ2ME.
I'm a bit clueless on how i will approach this project.. plus w/c would be better to use for this project? Netbeans or Eclipse?
Thanks!
SPP (Serial Port Profile) over Bluetooth means using an RFCOMM connection to send and receive data as if it were a physical serial connection. This is part of JSR 82, so you will be able to develop only on handsets that support this JSR.
You need to:
Figure out how to discover bluetooth devices, and scan for SPP services on a discovered device, then connect to one of those services, using one of the many JSR 82 tutorials out there.
Then send ESC/POS protocol data over that connection -- I assume you have the protocol specification available? Google turned up this application programming guide.
HTH.
JSR-82 Bluetooth API support L2CAP protocol, RFCOMM and OBEX profile. I don't know detail of Bluetooth basic printing profile (BPP) but, if you look into basic printing profile document you can find that BPP built on OBEX profile.
I can't find open source project for BPP on JSR-82. Please try to search it, but if you can't find one you might need to write your own.

Resources