2014-01-09 35 views
3

我建立一個應用程序像RootMetrics - 手機信號覆蓋鏈接https://itunes.apple.com/us/app/cell-phone-coverage-map/id399701910這裏 或OpenSignal - https://itunes.apple.com/app/opensignal/id598298030的iOS:測量通話質量/信號強度

我需要幫助,瞭解他們如何衡量呼叫/通話質量。據我所知,這些API是私人的和應用程序使用它們,不會在App Store上授權。任何人都可以告訴我如何在這種情況下測量信號強度。

回答

2

我不相信這是不可能的,沒有使用私人API:s。正如你所說,當你嘗試將應用程序上傳到App Store時,Apple的機器人可能會(肯定)發現它。

如果你仍然想使用私有API,這種方法用於測量載波信號強度應招:

-(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; 
} 

我會建議服用約10次測量的平均值,因爲我相信這些都可以差別很大。