iPhone iOS: how to detect when in roaming? (Not for jailbreaked phones)

3.3k Views Asked by At

I'm coding an app with heavy network usage. I've been told to warn users for costs but only when in roaming mode. I know theres some way to know when the phone is roaming comparing two undocumented files on jailbreaked iphones. But I need to find out how to for non jailbreaked phones. BTW found nothing at SCNetworkReachability api.

Ty!

2

There are 2 best solutions below

0
On BEST ANSWER

There's no way to know if they're roaming using the API. You can find out if they're on Wifi or Cellular, but that's it.

0
On

You can get the user's home network country code from CoreTelephony. There are lists to map MNCC ( mobile network country code) to a real country code.

Next get your location, from CoreLocation, and get an address from that using geolocation.

Compare one to the other, and there you have it.

Not 100% reliable near borders, but good enough for a warning message.