【问题标题】:Xamarin turn on WiFi Hot Spot/Access Point and gain network name & passwordXamarin 打开 WiFi 热点/接入点并获取网络名称和密码
【发布时间】:2020-07-16 22:00:24
【问题描述】:

我一直在寻找通过基于 Xamarin 的 iOS 和 Android 平台上的移动应用打开/关闭手机 WiFi 热点/接入点的功能。我查看了 WiFimanager,但它似乎只支持 Android 平台。

谁能建议是否可以提取手机的热点/接入点网络名称和密码,并能够打开/关闭它?

【问题讨论】:

  • 不是在 iOS 上,不是。
  • 另外,在 Android 上,如果您以 sdk 29(又名 Andorid 10)为目标,则无法以编程方式将其打开。 SetWifiEnabled 已弃用。

标签: ios xamarin access-point


【解决方案1】:

很遗憾,iOS 没有用于 Wi-Fi 扫描和配置的通用 API。但是,有许多特殊用途的 API,其中一种可能适合您的产品。

  • NEHotspotHelper — 如果您的应用帮助用户导航热点(用户必须与网络交互才能访问更广泛的 Internet 的 Wi-Fi 网络),您应该查看 NEHotspotHelper,它是网络扩展框架。详情请参阅Hotspot Network Subsystem Programming Guide

重要提示:NEHotspotHelper 要求您的应用具有特殊权利。

  • 另一种解决方案是使用private library,但这会使您的应用被商店禁止。因此,如果您不打算在 AppStore 上提交您的应用,则可以使用此解决方案。

更多专用API可以参考this Apple Q&A

【讨论】:

    【解决方案2】:

    根据您的应用将在哪个 Android 版本上运行,您可以关闭和打开 WiFi。

    在最高但不包括 29 (Android Q) 的 Android API 上,您可以通过在清单中请求以下权限:

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    

    然后调用:

    WifiManager.FromContext(this).SetWifiEnabled(true);
    

    但是,在 Android Q 及更高版本上,您根本无法执行此操作。

    对于 iOS,您将无法执行此操作,因为它们不允许第三方应用更改 WiFi 状态。即使没有 NEHotspotHelper 权利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-30
      • 2015-03-28
      • 2011-06-10
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多