iOS - how to detect all beacons around without using UUID - ios

I am working on iBeacons. Trying to find out all beacons around me.
Like Android, in iOS, we cannot achieve this without specifing "UUID" while searching.
By using UUID, it is working fine.
is there any better solution to search all beacons around you, without specifying UUID?
I found one solution RNLBeaconScanner, which is in objective c. RNLBeaconScanner detecting beacons in ObjC but same beacons not detecting in swift.
Thanks in advance!

TLDR; You can't.
Longer answer:
If you specifically are working with iBeacons, you NEED to know their UUIDs, to pass a valid CLBeaconIdentityConstraint to startRangingBeacons method of CLLocationManager.
Core Bluetooth, which can be used for general BLE scanning, unfortunately cannot be used to detect iBeacons, because, well, apple doesn't want you to.

Related

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

Get Bluetooth name of the device and the connected bluetooth in Swift (iOS)

I'd like to get the name of the iPhone's bluetooth and eventually the name of scanned bluetooth devices that the iPhone detects. Any indication of how to do that in Swift?
From what I know, this is the best example, but it is in Objective-C. It won't be difficult for you to translate the project to Swift. Spend some time and understand the example. It is a very good example. Currently, there are a lot of good examples in Objective-C, but only a few in Swift. You may also have a look at this. It is a simple Swift project about Bluetooth & iBeacon. 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.

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.

Is it possible to detect normal beacons using Core Bluetooth concept?

I have already worked with ibeacons using Core Bluetooth. It detects iBeacons and works fine. Now I would like to know that "Will CoreBluetooth detects normal beacons"?
Help me to solve this.
Thanks in advance.
Unfortunately, CoreBluetooth will not let you read iBeacon identifiers, so it is pretty much useless for working with them. See here for details.
I am not sure what you mean by "normal" beacons. You will need to clarify.

Resources