Reputation: 75
I am building an app like RootMetrics - Cell Phone Coverage link https://itunes.apple.com/us/app/cell-phone-coverage-map/id399701910 here or OpenSignal - https://itunes.apple.com/app/opensignal/id598298030
I need help to understand how they measure call/voice quality. As far as I understand such APIs are private and apps using them, would not be authorized on App Store. Can anyone tell me how to measure signal strength in such cases.
Upvotes: 3
Views: 1218
Reputation: 6394
I do not believe this is possible without the use of private API:s. And as you said, Apple's bots will probably (definitely) find out when you try to upload the app to App Store.
If you still want to use a private API, this method for measuring carrier signal strength should to the trick:
-(int) getSignalStrength() {
void *libHandle = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
int (*CTGetSignalStrength)();
CTGetSignalStrength = dlsym(libHandle, "CTGetSignalStrength");
if( CTGetSignalStrength == NULL)
NSLog(@"Could not find CTGetSignalStrength");
int result = CTGetSignalStrength();
dlclose(libHandle);
return result;
}
I would suggest taking the average value of about 10 measurements since I believe that these can differ a lot.
Upvotes: 2