Maximum number of UUID / number of beacons in a single app?
I'd like to build an app that can communicate with an unlimited number of beacons. The idea is to have a single app that the user can user in anywhere in the world in partner stores. I understand that iOS has a limit of 20 regions for a single app and each region can register unlimited number of beacons.
Does the limit of 20 means the app can simultaneously deal with only 20 regions at a time or 20 is an absolute limit of UUID? In other words can I register thousands of UUID and based on the user location only 20 are active at a time?
Many thanks for your help.
bluetooth-lowenergy ibeacon beacon
add a comment |
I'd like to build an app that can communicate with an unlimited number of beacons. The idea is to have a single app that the user can user in anywhere in the world in partner stores. I understand that iOS has a limit of 20 regions for a single app and each region can register unlimited number of beacons.
Does the limit of 20 means the app can simultaneously deal with only 20 regions at a time or 20 is an absolute limit of UUID? In other words can I register thousands of UUID and based on the user location only 20 are active at a time?
Many thanks for your help.
bluetooth-lowenergy ibeacon beacon
add a comment |
I'd like to build an app that can communicate with an unlimited number of beacons. The idea is to have a single app that the user can user in anywhere in the world in partner stores. I understand that iOS has a limit of 20 regions for a single app and each region can register unlimited number of beacons.
Does the limit of 20 means the app can simultaneously deal with only 20 regions at a time or 20 is an absolute limit of UUID? In other words can I register thousands of UUID and based on the user location only 20 are active at a time?
Many thanks for your help.
bluetooth-lowenergy ibeacon beacon
I'd like to build an app that can communicate with an unlimited number of beacons. The idea is to have a single app that the user can user in anywhere in the world in partner stores. I understand that iOS has a limit of 20 regions for a single app and each region can register unlimited number of beacons.
Does the limit of 20 means the app can simultaneously deal with only 20 regions at a time or 20 is an absolute limit of UUID? In other words can I register thousands of UUID and based on the user location only 20 are active at a time?
Many thanks for your help.
bluetooth-lowenergy ibeacon beacon
bluetooth-lowenergy ibeacon beacon
asked Nov 10 at 0:17
THEO
1
1
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
On iOS, a maximum of 20 CLRegion instances can be registered for monitoring at one time. Each one of these must specify at least a ProximityUUID, but can leave the major and minor null, matching any of the billions of beacons with that same ProximityUUID. But there are also potentially many many billions of different Proximity UUIDs, so this certainly won't match all beacons.
While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest. I actually built a web service called Ningo that lets you fetch a list of the known ProximityUUIDs that have been detected previously within a given distance of your location. There is also a free and open source iOS client library SDK for that here along with a full-blown reference app (free source code included) that does just exactly this so that you can detect almost any beacon around.
One other simpler alternative is to simply use iOS Ranging APIs. Unlike monitoring APIs, there is no limit on how many CLRegion instances you can register for ranging, although practical limits mean that the system really slows down once you register more than about 100. The Ranging API, will let you detect any beacon if your app is already running, but unlike Monitoring API, it they won't let you wake up your app when a beacon appears. But again, since the phone will slow down to a crawl if you try to register many thousands of regions, this is not a practical way to detect any beacon.
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53234893%2fmaximum-number-of-uuid-number-of-beacons-in-a-single-app%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
On iOS, a maximum of 20 CLRegion instances can be registered for monitoring at one time. Each one of these must specify at least a ProximityUUID, but can leave the major and minor null, matching any of the billions of beacons with that same ProximityUUID. But there are also potentially many many billions of different Proximity UUIDs, so this certainly won't match all beacons.
While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest. I actually built a web service called Ningo that lets you fetch a list of the known ProximityUUIDs that have been detected previously within a given distance of your location. There is also a free and open source iOS client library SDK for that here along with a full-blown reference app (free source code included) that does just exactly this so that you can detect almost any beacon around.
One other simpler alternative is to simply use iOS Ranging APIs. Unlike monitoring APIs, there is no limit on how many CLRegion instances you can register for ranging, although practical limits mean that the system really slows down once you register more than about 100. The Ranging API, will let you detect any beacon if your app is already running, but unlike Monitoring API, it they won't let you wake up your app when a beacon appears. But again, since the phone will slow down to a crawl if you try to register many thousands of regions, this is not a practical way to detect any beacon.
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
add a comment |
On iOS, a maximum of 20 CLRegion instances can be registered for monitoring at one time. Each one of these must specify at least a ProximityUUID, but can leave the major and minor null, matching any of the billions of beacons with that same ProximityUUID. But there are also potentially many many billions of different Proximity UUIDs, so this certainly won't match all beacons.
While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest. I actually built a web service called Ningo that lets you fetch a list of the known ProximityUUIDs that have been detected previously within a given distance of your location. There is also a free and open source iOS client library SDK for that here along with a full-blown reference app (free source code included) that does just exactly this so that you can detect almost any beacon around.
One other simpler alternative is to simply use iOS Ranging APIs. Unlike monitoring APIs, there is no limit on how many CLRegion instances you can register for ranging, although practical limits mean that the system really slows down once you register more than about 100. The Ranging API, will let you detect any beacon if your app is already running, but unlike Monitoring API, it they won't let you wake up your app when a beacon appears. But again, since the phone will slow down to a crawl if you try to register many thousands of regions, this is not a practical way to detect any beacon.
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
add a comment |
On iOS, a maximum of 20 CLRegion instances can be registered for monitoring at one time. Each one of these must specify at least a ProximityUUID, but can leave the major and minor null, matching any of the billions of beacons with that same ProximityUUID. But there are also potentially many many billions of different Proximity UUIDs, so this certainly won't match all beacons.
While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest. I actually built a web service called Ningo that lets you fetch a list of the known ProximityUUIDs that have been detected previously within a given distance of your location. There is also a free and open source iOS client library SDK for that here along with a full-blown reference app (free source code included) that does just exactly this so that you can detect almost any beacon around.
One other simpler alternative is to simply use iOS Ranging APIs. Unlike monitoring APIs, there is no limit on how many CLRegion instances you can register for ranging, although practical limits mean that the system really slows down once you register more than about 100. The Ranging API, will let you detect any beacon if your app is already running, but unlike Monitoring API, it they won't let you wake up your app when a beacon appears. But again, since the phone will slow down to a crawl if you try to register many thousands of regions, this is not a practical way to detect any beacon.
On iOS, a maximum of 20 CLRegion instances can be registered for monitoring at one time. Each one of these must specify at least a ProximityUUID, but can leave the major and minor null, matching any of the billions of beacons with that same ProximityUUID. But there are also potentially many many billions of different Proximity UUIDs, so this certainly won't match all beacons.
While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest. I actually built a web service called Ningo that lets you fetch a list of the known ProximityUUIDs that have been detected previously within a given distance of your location. There is also a free and open source iOS client library SDK for that here along with a full-blown reference app (free source code included) that does just exactly this so that you can detect almost any beacon around.
One other simpler alternative is to simply use iOS Ranging APIs. Unlike monitoring APIs, there is no limit on how many CLRegion instances you can register for ranging, although practical limits mean that the system really slows down once you register more than about 100. The Ranging API, will let you detect any beacon if your app is already running, but unlike Monitoring API, it they won't let you wake up your app when a beacon appears. But again, since the phone will slow down to a crawl if you try to register many thousands of regions, this is not a practical way to detect any beacon.
answered Nov 10 at 2:34
davidgyoung
48.3k1075138
48.3k1075138
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
add a comment |
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Many thanks David for your answer. "While you can't register more than 20 ProximityUUIDs for monitoring at any one time, you can change the ones registered as your location changes as you suggest." Do you mean literally remove 20 regions? Let me illustrate my idea. Say I'm a mutinational like McDonalds and I want my clients to use a single Mcdo app wherever they go in the world and that can communicate with the thousands of the Mcdonald's restaurants installed beacons all other the world. Is that possible?
– THEO
Nov 10 at 22:40
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Yes, exactly. On iOS you set up CLLocationManager to monitor for significant location changes. This gives you a callback each time the phone moves about 1km, even in the background. When the callback comes, you then stop monitoring for all regions, request a new list of 20 nearby UUUDs from the server based on your current lat/lon, and start monitoring those. The source code I shared does exactly that.
– davidgyoung
Nov 11 at 2:14
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
Many thanks David. Very clear.
– THEO
Nov 12 at 0:21
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53234893%2fmaximum-number-of-uuid-number-of-beacons-in-a-single-app%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown