简体   繁体   中英

is it possible to recognize wifi network inside app with xamarin

I'm just wondering if it's possible for an app to recognize what network you are connected to. I'm making and app where you have to be connected to a specific network before the app lets you use it's functions, but I'm wondering if that is even possible, I am using xamarin but I can program with android and a little bit of swift , so I also want to know if it's possible for xamarin to do this, if it's possible with android studio and xcode . I am using . I am using xamarin.forms` by the way.

This used to be disabled for security reasons but after iOS 4.0 Apple enabled it.

Although this question is for Xcode, the answer can be applied in Xamarin.

This is a sample application built with the feature in question, although it is for Xamarin.Mac

Use function CNCopyCurrentNetworkInfo .

This is possible but you will have to do native implementations to access the specific platform apis. For Android you will need to use WifiManager ( https://developer.android.com/reference/android/net/wifi/WifiManager ) and for iOS you could possibly use NEHotspotConfiguration ( https://developer.apple.com/documentation/networkextension/nehotspotconfiguration ).

I have used WifiManager for Android to connect to a specific Wifi network programmatically.

You can use "CrossConnectivity" plugin in Xamarin by adding the package "xam.plugin.connectivity". Below is the code to check connectivity. From the connectionType property you can detect to which network the device is connected and perform operations accordingly. `

CrossConnectivity.Current.ConnectivityTypeChanged += (sender, e) =>
            {
                var wifi = Plugin.Connectivity.Abstractions.ConnectionType.WiFi;
                var cellular = Plugin.Connectivity.Abstractions.ConnectionType.Cellular;
                var connectionTypes = CrossConnectivity.Current.ConnectionTypes;
                if (connectionTypes.Contains(cellular))
                {
                    //Do operations with cellular
                }
                else if (connectionTypes.Contains(wifi))
                {
                    //Do operations with wifi
                }
            };`

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM