Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EAAccessory.Name is not matching the paired device name

I have an iOS application. I can successfully connect to my paired EAAccessory (Bluetooth Classic). I am able to pull information off of the device that is exposed through the EAAccessory object. One thing I noticed is that the name of the device that is paired (in my Settings -> Bluetooth -> My Devices list) does not match the name of the device that my EAAccessory object exposes. I find this very odd.

Is there any way to get the actual name of the device (the one from the Settings page) through my iOS app?

like image 810
Travyguy9 Avatar asked Jun 13 '18 03:06

Travyguy9


1 Answers

You didn't mention if this is Bluetooth Classic or BLE ?, My answer below is for bluetooth Classic, I recall I've seen something like that before, here's my findings so far:

Take a look at the Accessory Design Guidelines, sections 2.1.5 and 2.1.8 specifically.

2.1.5:

During the Bluetooth discovery process, the Apple product prefers to display the Friendly Name of discovered accessories. Before the 2.1 version of the Bluetooth specification the Apple product would have to set up a connection to the accessory and do a Remote Name Request, which takes power, antenna time, and user's time. The Extended Inquiry Response feature, introduced in Bluetooth 2.1, lets an accessory send its Local Name and other information as part of the Inquiry Response and thereby increase the speed and efficiency of the discovery process. The Local Name should match the accessory's markings and packaging and not contain ':' or ';'.

Also review the Class of device section

2.1.8:

Every accessory that is compatible with an Apple product must accurately set its Class of Device using the Bluetooth SIG defined Major Device Class and Minor Device Class. See Volume 3, Part C, Section 3.2.4 in the Bluetooth Core Specification , Version 5.0. For example, an audio/video accessory intended to operate in a vehicle should set Major Device Class to audio/video and Minor Device Class to car-audio .

Your case might be just the fact that the accessory has a friendly name, and iOS did not clear the cache for the name at that point for the settings, or it could be a faulty implementation on the firmware side.

If this doesn't answer your question, please let me know what names do you see on settings and within your app, and what type of accessory this is with FW version if applicable and I'll try to take a further look into it.

like image 80
Mostafa Berg Avatar answered Oct 23 '22 18:10

Mostafa Berg