【问题标题】:Can we make an android app which works only when we connect to a specific Wi-fi Network?我们可以制作一个仅在我们连接到特定 Wi-Fi 网络时才有效的 Android 应用程序吗?
【发布时间】:2016-03-01 12:38:05
【问题描述】:

我想知道我们是否可以制作一个仅在我们连接到特定 wi-fi 网络时才可以使用的 Android 应用程序? 非常感谢所有帮助!我在这里完全没有想法。谢谢。

【问题讨论】:

    标签: java android networking wifi


    【解决方案1】:
    boolean onRightNetwork() {
        WifiManager wifiManager = (WifiManager) App.getContext()
                            .getSystemService(App.getContext().WIFI_SERVICE);
                    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    
        return wifiInfo.getSSID().equals(NETWORK_NAME);
    }
    

    在 onResume 中运行它,如果它返回 false,只弹出一个屏幕说连接到正确的网络。您可能还想注册一个广播接收器来监听 wifi 连接/断开连接事件,并在那里根据需要执行此检查。

    【讨论】:

    • 我有一个疑问!如果将来更改 SSID 怎么办?那么我们不必为了一点点改变而再次更新。
    【解决方案2】:

    您可以在启动器Activity 中为此编写自己的逻辑。

    WifiManager wifiMgr = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
    String name = wifiInfo.getSSID();
    

    上面的代码是获取当前连接的网络名称的名称,如果它与您的预定义名称匹配,您可以设置条件,允许用户使用您的应用程序。

    【讨论】:

      【解决方案3】:

      试试这个:

      WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
      WifiInfo wifiInfo = wifiManager.getConnectionInfo();
      wifiInfo.getSSID();
      

      获取 SSID 后,将其与您想要的匹配。如果条件满足,就随你所愿。

      【讨论】:

      • Mac 地址不是你想要的,它标识的是路由器而不是网络
      • 使用 SSID。那应该识别网络。所以你在正确的轨道上。
      【解决方案4】:

      你可以试试这样的:

      ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
      
      if (!mWifi.isConnected()) {
      // exit app here
      }
      

      确保您在 AndroidManifest.xml 中拥有适当的权限

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

      相关答案在这里:https://stackoverflow.com/a/3841407/3693617

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-07
        • 2012-02-07
        • 2017-09-14
        • 2012-02-01
        • 1970-01-01
        相关资源
        最近更新 更多