iOS - 在应用程序中跟踪飞行模式状态(我想在 appstore 构建中使用它)
<p><p>在我的应用程序中,我想知道飞行模式的当前状态。我浏览了很多链接,有些人说我们可以使用可达性来了解飞行模式状态,但没有得到正确的结果。和通过使用 <strong>Private Framework: Importing RadioPreferences.h</strong> 了解飞行模式状态的方法相同,但是有人说使用这个我们不能将应用程序提交到 Appstore。但我必须将应用提交到应用商店</p>
<p>以下是我关注的一些引用链接
<a href="https://stackoverflow.com/questions/13095109/reachability-airplane-mode-3g-vs-wifi" rel="noreferrer noopener nofollow">Reachability airplane mode (3G) vs. Wifi</a>
<a href="https://stackoverflow.com/questions/13387213/using-private-framework-importing-radiopreferences-h" rel="noreferrer noopener nofollow">Using Private Framework: Importing RadioPreferences.h</a> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您好,我创建了自己的检查方法</p>
<pre><code>#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@interface InternetConnectionCheck : NSObject
+(BOOL)CheckConnection ;
@end
#import "InternetConnectionCheck.h"
#import <SystemConfiguration/SystemConfiguration.h>
@implementation InternetConnectionCheck
static InternetConnectionCheck *singletonObject = nil;
+ (id) sharedInstance
{
if (! singletonObject) {
singletonObject = [ init];
}
return singletonObject;
}
// Initialize class object
- (id)init
{
if (! singletonObject) {
singletonObject = ;
}
return singletonObject;
}
+(BOOL)CheckConnection{
NSString * str = [ newtworkType];
if ( [ connectedToInternet]==YES) {
NSLog(@"INTERNET AVAILABLE VIA %@", str);
return YES;
}else{
NSString * msg = ;
UIAlertView * alert =[initWithTitle:@"Error" message:msg delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
;
return NO;
}
return NO;
}
-(NSString * )newtworkType {
NSArray *subviews = [[[ valueForKey:@"statusBar"] valueForKey:@"foregroundView"]subviews];
NSNumber *dataNetworkItemView = nil;
for (id subview in subviews) {
if(]) {
dataNetworkItemView = subview;
break;
}
}
NSString * connectedBy =@"None";
switch ([integerValue]) {
case 0:
NSLog(@"No wifi or cellular");
connectedBy=@"No wifi or cellular";
break;
case 1:
NSLog(@"2G");
connectedBy= @"2G";
break;
case 2:
NSLog(@"3G");
connectedBy= @"3G";
break;
case 3:
NSLog(@"4G");
connectedBy= @"4G";
break;
case 4:
NSLog(@"LTE");
connectedBy= @"LTE";
break;
case 5:
NSLog(@"Wifi");
connectedBy=@"Wifi";
break;
default:
break;
}
return connectedBy;
}
- (BOOL)connectedToInternet
{
NSString *urlString = @"http://www.google.com/";
NSURL *url = ;
NSURLRequest *request = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:5.0];
NSHTTPURLResponse *response;
NSURLResponse * resp;
;
if (]) {
response = (NSHTTPURLResponse*)resp;
}
return ( == 200) ? YES : NO;
}
- (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
{
NSError __block *err = NULL;
NSData __block *data;
BOOL __block reqProcessed = false;
NSURLResponse __block *resp;
[[ dataTaskWithRequest:request completionHandler:^(NSData * _Nullable _data, NSURLResponse * _Nullable _response, NSError * _Nullable _error) {
resp = _response;
err = _error;
data = _data;
reqProcessed = true;
}] resume];
while (!reqProcessed) {
;
}
*response = resp;
return data;
}
@end
</code></pre>
<p>并像使用它一样</p>
<pre><code> // Check Connection.
BOOL Y =;
NSLog(@"bool %s", Y ? "true" : "false");
</code></pre>
<p>要在模拟器上进行测试,您可以查看 <a href="http://sagarshirbhate.blogspot.in/2016/07/network-link-conditioner.html" rel="noreferrer noopener nofollow">my Blog</a> </p></p>
<p style="font-size: 20px;">关于iOS - 在应用程序中跟踪飞行模式状态(我想在 appstore 构建中使用它),我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/38450494/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/38450494/
</a>
</p>
页:
[1]