Ruby UUID's doesn't work on iOS iBeacon - ios

We are generating UUID's using Ruby 1.9.3 (SecureRandom.uuid) and passing them to our iOS devices to monitor Beacons. We generate UUID's from iOS devices as well, but the iOS generated UUID's seem to be fine.
Here is the problem:
Server issued UUID, pulled in via API and applied to iOS device. Monitor Regions.
App is unable to monitor or range this Beacon using the supplied UUID.
We are using a the Radius Networks/AltBeacon library to monitor Beacons on Android devices, and the Beacon is able to be monitored and ranged fine with the same UUID.
iOS generated UUID's uploaded to the server work just fine. Only server/Ruby based UUID's don't work on iOS.
Does anyone have any idea why this might be? I'm 100% confident in my region monitoring code that it isn't an issue. When I output the UUID's, they are the correct format, and I'm not getting any errors at all from iOS. It seems like a legit UUID, but for some reason, iOS will not see it. Help!!!

In order to detect a beacon on iOS, the ProximityUUID you provide to the monitoring APIs must match that of a beacon transmitter. Your question suggests you are generating a random UUID in Ruby and then expecting to detect a beacon with the same UUID. This can't ever work, because there are so many possible UUIDs that the chances of ever finding a beacon matching a randomly generated UUID are next to zero.
Perhaps I am misunderstanding your question, but I wanted to offer this in case the issue is really this simple. The question says nothing about how you are transmitting with this UUID. Perhaps details about how this is being done might help clarify the issue. Also helpful would be an example UUID and a snippet of your iOS code that sets up monitoring.

Related

Change iBeacon UUID (or Major/Minor) with Custom iOS App?

Has anyone had success with configuring non-name brand iBeacons (eg. https://www.ebay.com/itm/NRF51822-2V-3-3V-bluetooth-4-0-wireless-module-for-ibeacon-base-stat-JF/254232206096?hash=item3b316b9b10:g:TT4AAOSwaMtcnXbr) with an iOS app?
I have an app running that can scan for these beacons just fine, but my target application involves modification of the beacon UUID which (as far as I understand) is fairly contingent on the SDK provided by the maker of the beacon. Things like Estimote are pretty clear about their SDK capabilities but the beacons are a bit too expensive and bulky.
Open to literally any input or recommendations, I'm hitting a wall here.
Thanks.
The provider of the beacons should have a configuration app available. Avoid providers without such an app.
Even though iBeacon is exactly specified, configuring such beacons is not, so apps are not interchangeable.
I've used Wellcore beacons successfully, that are quite competitive on price when ordered directly from China. I made a free configuration app for them, based on their SDK, as there was no such app in English: https://play.google.com/store/apps/details?id=com.abiro.cliqtagsbeaconwriter
I got bad reviews as Wellcore changed chipset without telling me, so the app stopped working, but that's fixed.

Detect iBeacons without knowing UUID. Some apps are doing so

I looked into the answer for this question and in most of the answers, I found that it is not possible to detect the iBeacon without knowing the UUID of the device.
But some of the apps on App Store is doing the same. Here are the links for those apps, which are detecting unknown iBeacons.
https://itunes.apple.com/in/app/locate-beacon/id738709014?mt=8
https://itunes.apple.com/us/app/my-beacon-best-beacon-manager/id850255614?mt=8
Let me know if it is possible to detect the unknown iBeacon.
Thanks in advance.
I am the author of the Beacon Locate app you referenced in the question. I can assure you that it must know the ProximityUUIDs up front in order to detect beacons. The app is pre-configured with a dozen or so UUIDs (Estimote's default UUID is one of these) so you can detect those beacons without first manually entering the UUID. We do this to make it as easy as possible on the user. (Obviously that worked as you did not even notice we were doing it. Thanks for the compliment!)
You can see these pre-configured UUIDs by going to tge app Settings, which also allows you to enter more.
In the past there have been private APIs that allow you to detect any beacon on iOS. But there are three problems with these:
Apple forbids publishing apps in the AppStore that use private APIs
These private APIs are subject to change with any OS update, rendering them unworkable
The private APIs I know about to do this were all removed as of iOS 9

iOS - iBeacon - Changing UUID using a program

I am new to iOS and iBeacon.
I am confused about iBeacons's UUID, minor and major values of the device.
Is it possible to change/reassign the iBeacon device's UUID, minor and major values using any objectiveC.
Thanks in advance.
Alvin
Yes that's possible, but it depends on the iBeacons you are using.
Most manufacturers provide a SDK which allows you to do stuff like that. If you know the commands that need to be send to change the iBeacon data of your beacons you can use Core-Bluetooth and do that yourself. But check if there is a SDK first, because changing UUID etc is the main task of these SDKs.
One example would be the Estimote SDK.
There is no way to do this with Apples built-in methods only. There is no "change iBeacon data" method. The bluetooth commands that have to be used to reassign iBeacon data depend on how everything is implemented on the actual beacon hardware.

Gimbal S10 in iBeacon Mode is not showing in Apple's Sample AirLocate App

I am using a Gimbal series 10 device configured in iBeacon mode using one of the AirLocate UUIDs (the first one - E2C56DB5-DFFB-48D2-B060-D0F5A71096E0). When I use iBeacon Locate on my Android phone, I can see the Gimbal broadcasting the correct UUID. However, when I try to use Apple's AirLocate demo app, it is not working in trying to find the iBeacon. I also cannot find it in the iOS version of iBeacon Locate, by the same company, Radius Networks.
I am using the beta version of Xcode / iOS.
We have internal apps that would like to use the micro-location features that iBeacons allow, and I'm trying to put together a quick proof of concept. Unless I can get the iBeacon distance using the sample code in AirLocate, I cannot proceed. Any help or experience with this would be greatly appreciated.
Two suggestions:
First, Look closely to verify that have every single character of that ProximityUUID entered as above in the Gimbal configuration. If even one character is off, it will not be visible in AirLocate or the iOS version of the Locate for iBeacon app.
The Android version of iBeacon Locate shows all iBeacons regardless of ProximityUUID, so it will still be visible in the event of a configuration issue.
Second, there is a known bug in iOS 7.1 CoreLocation where iBeacon detections can stop entirely until you reboot your phone. Try rebooting and see if the beacon starts showing up in both applications on iOS.

Unable to transmit as an iBeacon from iPad Air

We have an existing iPad app that we are adding iBeacon transmitting capabilities to. I am unable to transmit an iBeacon signal. I won't provide the code at this point because I've also tested the Apple AirLocate example and the Radius Networks Locate iB app as a transmitter and in both cases the iPad won't transmit a beacon.
We tested with iPhone 5 devices and they can both transmit and range beacons.
What could be the issue with our iPad test device that it won't transmit? It can range beacons from the iPhones just fine.
BT is enabled. Location Services are enabled and approved for the apps in question.
Two likely causes:
The Proximity UUID of the iBeacon transmitter is not configured with Locate for iBeacon or Air Locate. Locate cannot see new iBeacons with unknown Proximity UUIDs. Even if the configuration is off by only a single digit, the iBeacon will be invisible.
Many users have reported recently that their phones are getting into a state where they cannot see iBeacons, and a reboot solves the problem. See here for more details.
How do you detect the iBeacon, actually?
I once encountered the problem that CLLocationManager#startMonitoringForRegion: did require a certain period of time, until the regions were updated and a region was ranged. So CLLocationManager#requestStateForRegion:...
In either way. What I first did to validate that beacons were emitting/sending correctly (not receiving): I downloaded a common Bluetooth Scanning-App and checked, whether the App is able to range the emitted beacon. Could you verify this at first? Maybe the iPad Air is sending correctly, but the receives do not range the beacon yet.

Resources