首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android +中编程获取WiFi热点状态

如何在Android +中编程获取WiFi热点状态
EN

Stack Overflow用户
提问于 2018-07-30 08:24:21
回答 1查看 1.2K关注 0票数 4

我想知道在Android (API 26及更高版本)中是否有任何方法可以获得will热点状态(打开或关闭)而不使用反射,因为根据新的对非sdk接口的限制,它不会在Android P上工作。

我已经看到,有些方法提供了使用反射禁用WiFi热点的能力,但我希望避免这些方法,只想知道是否启用了热点。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-30 09:06:41

请看下面的代码。这会帮你的

代码语言:javascript
运行
复制
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是一个枚举,如下所示

代码语言:javascript
运行
复制
  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
  }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51589794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档