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

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.

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.

watch OS 2 beacon monitoring and ranging

has anybody found any information about interacting (ranging and monitoring) with Beacons in native Watch OS 2 applications?
I would like to give the user the possibility to range one in an home environment without having the phone in their pocket.
I can't find any docs anywhere and I am wondering if it's actually feasible - and obviously if there is any kind of example around.
Thanks
Core Location on watchOS is stripped of all the iBeacon functionality. There are no startRangingBeaconsInRegion: and startMonitoringForRegion: methods, as can be seen in the CLLocationManager reference documentation:
https://developer.apple.com/library/watchos/documentation/CoreLocation/Reference/CLLocationManager_Class/
The only option for now is to do the ranging/monitoring on the iPhone, and pass the results to the Watch app via the Watch Connectivity Framework.
UPDATE for watchOS 4: still no iBeacon in Core Location, but there's now Core Bluetooth available for the watchOS apps, which means your app can detect non-iBeacon packets, such as Eddystone, or Estimote's Nearable/Telemetry.
Only if your app is in the foreground or has execution time though. The latter meaning that, for example, if your app is already running in the background because you're using the new "location updates" background mode for turn-by-turn navigation, or you're tracking workouts in the background, then you can at the same time scan for beacons. In and on itself, detecting Bluetooth beacons won't keep your app alive in the background, it will get suspended.
directly use watch to monitor/ranging with watchOS is prohibited by Apple (it detailed in developer document). It mean you can not turn bluetooth on watch and start monitoring directly! But there're another way, you can integrate app with watchOS, I gave a tried before with our app and it work pretty good. We're using Estimote, you can refer right here: Estimote Watch SDK Integration
It can be transport notification from iOS device to watch. They provide several helpers support that. Good luck!

Ruby UUID's doesn't work on iOS iBeacon

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.

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.

Can an iOS device act as an iBeacon while listening for other iBeacons?

I was wondering if an an iOS device can act as an iBeacon while listening for other iBeacons. Based on my reading, it seems as though the answer should be "no" but I would very much appreciate a definitive answer. I would test it out myself but I have yet to purchase an additional iOS device. Please let me know. Thanks!
EDIT:
Found an additional phone to test it out and it worked as confirmed below.
Yes, this works! I had actually never tried it myself until a few minutes ago. The only caveat is that when a device is both transmitting as an iBeacon and scanning for iBeacons, it does not detect its own transmissions.
Here is my test setup:
Locate for iBeacon v1.1 installed on an iPhone 4S (See NOTE), configured to transmit as an iBeacon with UUID 5AFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF, major 0, minor 0, power -59. Also configured to locate visible iBeacons (using ranging).
MacBeacon installed on a MacBook Pro, transmitting UUID 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6, major 1, minor 1, power -59
ScanBeacon installed on the same Macbook Pro, scanning for all iBeacons.
The result was that the iPhone detected the 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 iBeacon coming from the MacBook and the MacBook detected the 5AFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF iBeacon coming from the iPhone. This proves an iPhone can transmit and range simultaneously.
NOTE: Version 1.1 of Locate for iBeacon, which allows simultaneous iBeacon transmission and iBeacon locating, is not yet available in the AppStore. I am the author and am in the process of adding that feature to the next release.

Resources