android - 如何获取wifi热点状态

标签 android android-wifi android-wireless

我正在我的手机中创建wifi 热点,我想在我打开或关闭热点时获取它的状态更改事件。

最佳答案

请看下面的代码。这对你有帮助

public class WifiApManager {
    private final WifiManager mWifiManager;

    public WifiApManager(Context context) {
        mWifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
    }

    /*the following method is for getting the wifi hotspot state*/

    public WIFI_AP_STATE getWifiApState() {
        try {
            Method method = mWifiManager.getClass().getMethod("getWifiApState");

            int tmp = ((Integer) method.invoke(mWifiManager));

            // Fix for Android 4
            if (tmp > 10) {
                tmp = tmp - 10;
            }

            return WIFI_AP_STATE.class.getEnumConstants()[tmp];
        } catch (Exception e) {
            Log.e(this.getClass().toString(), "", e);
            return WIFI_AP_STATE.WIFI_AP_STATE_FAILED;
        }
    }

    /**
     * Return whether Wi-Fi Hotspot is enabled or disabled.
     * 
     * @return {@code true} if Wi-Fi AP is enabled
     * @see #getWifiApState()
     */
    public boolean isWifiApEnabled() {
        return getWifiApState() == WIFI_AP_STATE.WIFI_AP_STATE_ENABLED;
    }

}

其中 WIFI_AP_STATE 是一个枚举,如下所示

  public enum WIFI_AP_STATE {
      WIFI_AP_STATE_DISABLING, 
      WIFI_AP_STATE_DISABLED, 
      WIFI_AP_STATE_ENABLING, 
      WIFI_AP_STATE_ENABLED, 
      WIFI_AP_STATE_FAILED
  }

关于android - 如何获取wifi热点状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841421/

相关文章:

android - 如何在 HTC One X(可能是所有 htc 设备)中启用 ListView overscroll?

android - 为什么 doctest 在 qpython3 中不起作用

android - 如何在android中以编程方式检查连接的wifi是否是静态的

android - 使用 Android 手机作为 wifi 网络服务器

java - 如何在android模拟器中运行wifi管理程序?

android - 我可以使用 WiFi 在两部未连接到路由器的安卓手机之间传输数据/消息吗?

android - 如何在 Android TV 上安装 Beta (Crashlytics) 分布式应用程序

java - Android 应用程序中的穆斯林祈祷时间是如何计算的?

java - 检测何时连接/断开 Wi-Fi

android - 无线设置对话框