IOS 10 setup - WLAN Access does not appear on some iOS devices

Our application uses WLAN to communicate with a wireless device. When our application is installed in iOS 10. Sometimes the udp socket does not work. The reason is that in iOS 10 they added a new setting or resolution in your application that allows the user to enable or disable the WLAN user or cellular data.

The following will appear in the application settings:

enter image description here

When I click on Wireless ... This will bring me to this user interface:

enter image description here

After using WLAN. The application will work fine.

Now the problem is, sometimes or on some devices running iOS 10, the settings that I just showed you are not displayed (I mean the setting shown in the first image). So, is there anything I can do to make the settings always display? It seems that sometimes the iOS system does not recognize that my application uses wireless data. And this will cause my application to never be able to use WLAN forever.

+5
source share
2 answers

After some time, research. I eventually turned to Apple Code Level Support for help. Apple claims that this problem is likely to occur when you reinstall the application. They say that this is probably due to the Image UUID of the main application and the reskinned applications are the same. When you install both of them on your phone, the system will consider the reskinned application as the same application compared to the main application. Thus, if one application cannot access the WLAN, it will also affect the other. In their opinion, this looks like a bug in iOS . And they do n’t currently have a solution for developers. This is the radar error number:

What I did to somehow reduce the occurrence of the problem was to add tracking to Network Restriction using the following code.

- (void)startCheckingNetworkRestriction { __weak AppDelegate *weakSelf = self; _monitor = [[CTCellularData alloc] init]; _monitor.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state) { [[NSOperationQueue mainQueue] addOperationWithBlock:^ { NSString * statusStr; switch(state) { case kCTCellularDataRestrictedStateUnknown: { statusStr = @"restriction status:Unknown"; } break; case kCTCellularDataRestricted: { statusStr = @"restriction status:restricted"; [weakSelf performUrlSession]; } break; case kCTCellularDataNotRestricted: { statusStr = @"restriction status:not restricted"; } break; default: { abort(); } break; } NSLog(@"Restriction state: %@", statusStr); }]; }; } 

Please note that for this you need to import CoreTelephony.

 @import CoreTelephony; 

when I find that the network is limited. I will open a URL session to force access to the Internet and hope that a crash warning dialog box opens. As soon as the warning pops up, the WLAN Access settings that I spoke about will definitely appear under the settings. There are times when this does not work. If this happens, you just need to rename the package identifier and make a couple of changes to your code and then restore it several times (well, this is what I did when I experimented). Reinstalling the application will do nothing. Restarting and rebooting the phone will also not.

Hope this helps.

0
source

User is not allowed to use WIFI in iOS10.

The application in the screenshot (BSW SMART KIT) uses wireless accessories (WAC), i.e. can connect to wireless speakers. This requires the Wireless Accessory Configuration feature. This is what you can enable / disable in the system settings (your screenshot).

Switching in the settings appears after connecting to the device via WIFI via WAC. You can also see this behavior in your sample application (BSW SMART KIT).

This sample code may allow you to get this idea. Details in the Apple Documentation .

+1
source

Source: https://habr.com/ru/post/1260181/


All Articles