【问题标题】:How to know when the user turn on/off mobile data or wifi?如何知道用户何时打开/关闭移动数据或 wifi?
【发布时间】:2014-01-28 15:03:40
【问题描述】:

我的应用程序需要知道用户何时打开或关闭了 Wifi 或移动数据。实际上它显示网络何时发生变化,设备是否连接,工作正常。但我想知道用户何时手动打开/关闭网络。

知道我的清单上有这个。

<receiver android:name="pe.com.gps.broadcastreceivers.CheckForMobileDataBroadcastReceiver" >
       <intent-filter>
           <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
       </intent-filter>
   </receiver>   

【问题讨论】:

  • 两个线程都是关于连接丢失的,也许我没有正确解释。我的应用程序已经显示设备是否连接,但我想知道连接是否由于信号弱或用户禁用它而丢失。
  • 您在那个链接中看到我的答案了吗?使用该代码,您可以检测到我认为您想要的网络状态更改。看到那个,如果有任何问题告诉我
  • 我看到了,它做了我已经做过的事情。它工作正常,它会检测移动设备或 wifi 何时启用或禁用。那份工作就完成了。问题是该方法不会告诉我连接是否因为用户禁用或信号太弱而丢失,它只会告诉我是否已连接。

标签: android mobile connection android-manifest status


【解决方案1】:

在 onCreate 方法中(或者当你想知道 wifi 是否连接时)使用 WifiManager 。例如:

WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);

if (!wm.isWifiEnabled()) {
   // wm.setWifiEnabled(true);
   //Or do what you want in disable mode
} else {
    // wm.setWifiEnabled(false);
    //Or do what you want in enable mode
}

在这种情况下,ConnectivityManager 也可以帮助您。检查这个conversation.

【讨论】:

  • 我已经知道 wifi 或移动数据是否已连接,但我想知道是用户启用还是禁用了,还是信号不佳。
  • isWifiEnabled() .. 查看示例
  • @RanjitPati OP 必须使用广播接收器来检测网络状态变化,用你的代码 OP 就可以在一瞬间检测到网络状态
  • @Shayanpourvatan 你是对的。但是,当您将服务用于某些服务器内容并经常通过 Alarmmanager 启动它时,请考虑一下,然后是一些挂起的意图。那时,此检测可以根据需要多次工作。
  • 我知道设备获得什么样的连接,无论是wifi还是移动设备,问题是我想知道何时禁用,如果用户是禁用它的人,或者弱信号使设备失去连接。
【解决方案2】:

当网络发生变化时,您的 CheckForMobileDataBroadcastReceiver 会收到连接发生变化的广播消息。收到该消息后,您可以查询当前的网络状态。如果您查看 android 文档中的 this 文章,它详细说明了如何访问活动网络。

ConnectivityManager 具有 Mobile/Wifi 等常量,可用于与网络进行比较以确定其类型。

【讨论】:

    【解决方案3】:
    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
    if (!wifiManager.isWifiEnabled())Toast.makeText(this, "Wifi is not enabled", Toast.LENGTH_SHORT).show();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多