Apple Doc says :
Apps are limited in the total number of regions they may monitor at
any given time, and local notifications configured with a region value
count against that total.
But total number are not specified, how to know the limit of the total number of regions app can monitor.
The number is limited to 20 per app, according to Apple's Location and Maps Programming Guide :
Be judicious when specifying the set of regions to monitor. Regions
are a shared system resource, and the total number of regions
available systemwide is limited. For this reason, Core Location limits
to 20 the number of regions that may be simultaneously monitored by a
single app. To work around this limit, consider registering only those
regions in the user’s immediate vicinity.
Related
I'm implementing STT (Speech-to-Text) with iOS Speech framework.
Apple's official document says.
Be prepared to handle failures caused by speech recognition limits. Because speech recognition is a network-based service, limits are enforced so that the service can remain freely available to all apps. Individual devices may be limited in the number of recognitions that can be performed per day, and each app may be throttled globally based on the number of requests it makes per day. If a recognition request fails quickly (within a second or two of starting), check to see if the recognition service became unavailable. If it is, you may want to ask users to try again later.
Another document says that a device can send 1000 requests per hour.
Then, if one user exceeds 1,000 requests per hour, other users cannot request it?
Or can the user request 1000 times per person?
I looked up the official document or article, but it was not clear.
I wonder if it is a limit of 1000 requests per hour or a limit of 1000 requests per user.
I have a problem with the Geofencing Limits in iOS.
I'm building an app for smoke shops. Locations add up to about 200.
I want to have users 'automatically' check-in when they are a couple feet away from a shop.
The limit that's imposed by Apple is 20.
Apple Documentation
Regions are shared resources that rely on specific hardware capabilities. To ensure that all apps can participate in region monitoring, Core Location prevents any single app from monitoring more than 20 regions simultaneously. To work around this limitation, monitor only regions that are close to the user’s current location. As the user moves, update the list based on the user’s new location.
As seen in the documentation, Apple recommends developers to update the list of 20 regions as the user is updating his/her location.
Three questions come to mind.
Documentation says "Core Location prevents any single app from monitoring more than 20 regions simultaneously.". Does this mean that, as a developer, I'm restricted to 20 locations I can set regions in my app? Because I have 200 locations (200 clients that want to have this feature around their store).
Apple provides a work around to the limitation. Does this mean that the 20 region limit is only for the app users? Does this mean that I can set 200 locations, but users will only see 20 locations closest to them that they can check into?
What happens when I have 10 users using my app and they have an amount of regions over 20 locations collectively?
1 - That means that your app can track 20 geofences. If you want to track 200 geofences your can track always the 20 most closest regions. You need create an strategy to update your geofences list. For example you can update your 20 closes geofences when enter/leaving your geofences. Or can you update them in background when executing a background fetch.
2 - Geofences is not the same that map regions. You can show as much regions as you want in a map (using for example mapkit).
3 - The geofence limitation is given by device. Each user can track up to 20 geofences.
I am new to beacon coding.
Our client want a app which will scan all the available beacon devices (manufactured by client itself)
I want to write a generic code which will scan for all available devices near by, and will show me alert on particular command,
like it will blow GREEN light when call is there, Yellow light when Message received etc.
I have the commands provided, but need a methods for beacon to call those commands, in iOS.
first target is to scan all available devices.
On sample I found some tutorials which are providing direct UUID
but I need to generate a code which will scan all.
any links and other info is welcome.
Thanks in advance..
Apple restricts the ability to scan for iBeacons on iOS so that you must know the beacons' ProximityUUIDs up front. There is no way to simply scan for all iBeacons regardless of ProximityUUID using public APIs. While there are private API hacks that may allow this, these will not allow the app to be approved for distribution in the AppStore.
If you can get a finite list of known ProximityUUIDs for your client, this will still work OK. You can call CoreLocation's startRangingBeaconsInRegion: command multiple times, once for each ProxinityUUID. While there is no hard limit on the number of times you can call this (unlike monitoring APIs which have a limit of 20 regions), practically you can probably only call this in the low hundreds of times.
Bottom line: while you cannot scan for all beacons regardless of ProxinityUUID, you can get close to the same effect if you know all the UUIDs up front.
I have a couple of doubts about the Ios native geofencing features.
The documentation describes that there's a maximun number of regions to add y the number is 20. Is possible to change dinamically the regions according (for example) to the city where the device is? (To increase the number of regions that can be monitoring)
Is possible to get the regions to monitoring from a config file at mobile app start? (In order of configurate the regions file and later the device get the regions from there)
Other doubt that I have is about something that I read: "The regions is shared by all apps, and older fences will get purged to make room for newer fences". This means that if I have a region 1 and a region 2 and a device1 and device2, if the device1 monitoring for the region1, the device2 could not monitor region1?
Can a device monitors for more than one region?
Thanks a lot who can help me with this doubts!!!
An application can monitor no more than twenty regions or geofences. You can update the regions if user has moved far enough.
Yes.
No, regions are not shared in any way across apps.
Yes.
I want to build an application that can set up a set amount of geo-fenced square regions across town, I know I could achieve this by enabling location in the background, and check those coordinates to determine if they are in my area of interest.
But that would mean receiving many notifications from the system and would hit the battery performance.
Instead I wondered if there was a new API or possibly an upcoming one that would let you set a geo fence and only be notified by the system if you're inside of that or close by, rather then monitor your location constantly.
Is that possible ?
I found the following question, but I can't find much else:
http://www.quora.com/Is-the-geo-fence-functionality-built-into-iOS5s-Reminders-application-available-as-a-public-facing-API
It would seem to me that there is something more to geo fencing then tracking the GPS and comparing to an array of points of interest. If I set the reminders app to remind me that I have to walk my roommates dog tonight when I get in, then I can see the location icon at the top of the screen.
If I open the multitasking bar and remove reminders, the location icon persists, indicating the phone is tracking me, but it's an independent task to the reminders app.
If I set up an application with background location tracking, and remove from multitask bar, the location icon disappears with the application. This makes me believe that there is or will be an API for geo fencing coming for iOS 5.x, this would allow apps to post an array of coordinates to the system and receive local notifications based on the proximity to those points.
Does something similar exist or not yet ?
Thanks
UPDATE FOR FUTURE USERS
There seems to be a limit of 10 regions per app that can be monitored at any time (my personal testing), as this is a shared resource.
Apple Documentation extract:
You should always be judicious when specifying the
set of regions to monitor. Regions are a shared system resource and
the total number of regions available systemwide is limited.
You should look at the startMonitoringForRegion:desiredAccuracy: method on CLLocationManager.