Everyone knows it — iOS is a very restrictive platform, and doesn’t make it easy to build an app like Prey. After releasing our iPhone and iPad client, we explained how we managed to make Prey work on it, despite the restrictions imposed by the Cupertino guys.
We then decided to release On-Demand for all users to reduce battery consumption and to simplify activation on mobiles. But still, many questions have arised about how this affects activation and why, on some cases, reports simply don’t work.
So we thought it was a good time to wrap up all this content, and make a brief guide with all what you need to know about Prey for iOS.
Pulling instructions from the server
In iOS, applications can’t run without the user’s interaction. This means if you don’t tap an application’s icon, it won’t run. For us, this means that, unlike the desktop version, on iOS Prey can’t query the Control Panel to see if the device was marked as missing or not unless the app’s icon is deliberately tapped by the user. And of course, thieves won’t do that!
However, Apple does let some applications to run on the background, or at least with the phone’s screen turned off. Exceptions include music players, voice applications (like Skype) and, yes, geolocation-based apps. So what Prey does, basically, is to tell the phone or tablet to alert it whenever there is a change in its location, like moving a few blocks away.
If that occurs, Prey will wake up and check with the Control Panel. If the device is OK, nothing happens… but if it was marked as missing, then Prey will start working its magic.
Prey could enable every location sensor on the phone—and this means GPS—to be super-duper-sensitive on location changes, but that would drain your full battery in, like, two hours. Not very practical, to be honest. That’s why Prey uses Apple’s Significant Change Location Service, which relies on cellular antennas instead of the built-in GPS receivers on the phone. This lets Prey decrease the battery consumption to the minimum. But once the phone is marked as missing, GPS and every location sensor on the phone are activated to get the super-duper-sensitive location changes you need to recover your phone.
For our application to work this way, first you must enable the use of the location listener on Prey for iOS; and second, on the iPhone Settings > Privacy > Location Services, you have to let Prey access this service. If you don’t enable these two options Prey won’t be able to help you when your phone goes missing, or at least not using this method. But there’s still another one.
Pushing instructions from the server
Prey uses Apple’s Push Notification Service, which pushes a bit of information to your phone every time an application requests it. This way, when you click on the green RUN PREY button on the Control Panel, Prey sends the activation signal to your phone (e.g. “pushes the instructions”). Just the way Facebook notifies a new comment on your photos, the Control Panel tells the Prey agent on your phone to wake up. It’s really that simple.
The problem for this method is, again, that iOS won’t allow applications to run without any user interaction. This means the user must do something about the notification sent to the device for it to trigger. Here is when the Bank of America PIN reset message is shown.
When the thief accepts the push message then boom! Prey will take a picture of him/her while BOA’s mobile site is shown on the browser. But remember, for this to happen the thief must open/accept the message first.
We encourage these settings for Prey for iOS:
- iOS > Settings > Notifications > Prey
- Notification Center for Prey: On
- Recent Items: 1
- Alert Style: Alerts — If you turn this off, Prey will never work On-Demand
- Badge App Icon: Off
- Sounds: Yes
- View in Lock Screen: Yes