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.
Related
I've a iOS 10 device in my work place and I got curious about it's bluetooth's weird behaviour. So.. I was playing around with my Android's Beacon simulator App and I noticed that every time I unlocked my IPhone and enabled the Bluetooth a new entry was immediately created in my android's near by beacon's list. Is there a reason for that?
UPDATE 1
- handoff disabled
- AirDrop disabled
- No open apps.
= still got a mysterious broadcast on my Beacon Simulator App.
UPDATE 2
Ok, I was digging into the subject and noticed that the iOS device is not being able to find near by devices in a standard bluetooth discovery.
In the other hand, near-by devices can detected the iPhone and when clicking on his entry in their result's list a popup for pairing shows up on Iphone's screen and as if it was magic the name of the device trying to pair shows up on the iphone's list that is always empty, in this case Huawei P9 but tested with a note 4.
I am the developer of Beacon Simulator. I just want to warn that the app is a Beacon simulator before all, not really a Beacon scanner. I added the scanning part because it was easier to do some tests, for the beacon copy feature and also for future developments.
What the scanner will show you is not necessarily a beacon, but any scannable Bluetooth Low Energy devices, connectable or not. Unfortunately, it is difficult to know if a device is connectable or not with the Android API, so the app lists everything.
Since the icon represents a standard Bluetooth logo, it means it is a signal not recognized by the app (here, it isn't an iBeacon nor AltBeacon nor Eddystone beacon). So either it is a non standard beacon, or simply a signal to advertise a possible connection to the device. When a connectable device broadcast its presence, the signal uses the same channel and protocol than the one used by beacons. A connectable device will advert itself as connectable, but as said, the Android API erase this difference, unfortunately.
So what you see is not necessarily a beacon, but maybe simply your iPhone broadcasting its presence as a connectable device. Maybe I should add some disclaimers in the app.
I have been trying to connect to a Jaalee beacon using altbeacon library without success.
The service UUID is 0x00001532-1212-EFDE-1523-785FEABCD123
What is the correct setting for setBeaconLayout in altbeacon?
For example for another type of beacons that is
beaconManager.getBeaconParsers().clear();
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
I have searched everywhere and I cannot find it. Thanks
** UPDATE **
I have checked using a program scanning for bluetooth devices and indeed it is a Jaalee device.
The bluetooth device has name "jaalee"; ScanRecord is
[mAdvertiseFlags=4, mServiceUuids=[0000fff0-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=0, mDeviceName=jaalee]
The fact that you can detect the device transmitting a Bluetooth LE Service UUID, but cannot detect it with the Locate App means that:
The Jalee device is not transmitting a standard AltBeacon or iBeacon frame, both of which are detected by the Locate app.
The Jalee device is connectable, and might be configurable if you can find a Jalee configuration app. This may allow you to configure it to transmit the standard bracon frames described above.
We would like to use some configuration of the iBeacon , where the user's iPhone will advertise its services, but when the app is closed.
So when a user come across a hardware beacon, it will recognise the user's iPhone(as a beacon) without opening the app, and even connect to it .
I could find here many opinions about that, but i wonder if there are any news with the iOS8 ,and if there is a clear answer for that from Apple ?
A couple of points:
Bluetooth beacons, iBeacons included, are transmit only. They don't see or "recognize" other beacons or phones. The statement "when a user come across a hardware beacon, it will recognise the user's iPhone(as a beacon)" is not possible with the technology regardless of whether the app on the phone is in the foreground or the background.
iBeacons are supported on iOS devices with version 7.x and 8.x of the operating system. On all these versions, however, beacon transmission from the iOS device is only supported when the app is in the foreground. See here for details.
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.
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.