I have seen some applications on appstore those are gathering signal strength Like Experience.me and NetQual. Is there any way to get signal strength publically or these guys uses some tricks for byepassing private api? How an app could be live on appstore with some restricted information showing on app? when apple rejects app with these information how these apps are live? Please help me i also need a public api to get signal strength for my app.
Thanks in advance
Replies
Ping tests for network.
And their magic for determining number of bars for cell service is to ask the user.
Are you talking about cellular signal strength and so on? If so, there is no public API for getting that information on iOS.
As to how the apps you referenced work, I can’t discuss other developers apps but you can look at this post for my general thoughts on this.
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"
WWDC runs Mon, 13 Jun through to Fri, 17 Jun. During that time all of DTS will be at the conference, helping folks out face-to-face. http://developer.apple.com/wwdc/
I want to get LTE signal strength on iOS device. I search in Internet and found two ways.
1. CTGetSignalStrength:
int CTGetSignalStrength();
int signalStrength = CTGetSignalStrength();
2. Status bar:
UIApplication* app = [UIApplication sharedApplication];
NSArray* subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
for (id subview in subviews) {
if [subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
int signalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue];
Are these two ways only run on iOS 9? Many said that the first way uses private method and the app with it can be not approved by apple.
Many said that the second way is also not public methods. But some one said that they built a app with the second way and the app was approved and is in apple store.
There are no definte statement about wherher apps with either of two ways can be approved by apple. Can I user either of these ways in my app? Is Apple going to approve my app which is built with either of these ways? Can I get a definite answer from apple?
Till now are there any new ways to get signal strength?
thanks
App review guideline #2.5 is Apple's official answer: Apps that use non-public APIs will be rejected
If the reviewers don't catch your review guideline violation, that isn't permission to continue violating that guideline. What it means is that your application is existing on borrowed time. Maybe your violation is going to get caught when you submit an update. Maybe that undocumented API is going to stop working or start returning invalid results. Maybe App Review will decide to redo the review for your application due to other concerns, and catch the violation.
I’m going to repeat myself here: there is no public API for getting cellular signal strength on iOS.Till now are there any new ways to get signal strength?
Both of the techniques you’ve described rely on private API and are grounds for rejection. Do not go down this path.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
WWDC runs Mon, 13 Jun through to Fri, 17 Jun. During that time all
of DTS will be at the conference, helping folks out face-to-face.
<http://developer.apple.com/wwdc/>
Yes. The answer is…Did you get answer here?
There is no public API for getting cellular signal strength on iOS.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
This is not just a question of what’s allowed, it’s a question of what’s supported. So, let me amend my statement: There is no public API for getting cellular signal strength on iOS, nor has their even been.I know for iOS 13 not allowed
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"