如何通过编程检查热点是否已启用或禁用?

10
我需要通过我的应用程序检查设备上的热点是否已打开?这个问题可能是重复的,参考链接为如何检测WiFi共享状态
1个回答

16

代码: Java

Method method = wifiManager.getClass().getDeclaredMethod("getWifiApState");
method.setAccessible(true);
int actualState = (Integer) method.invoke(wifiManager, (Object[]) null);

代码: Kotlin

    fun getHotspotState(): String {
    val wifiManager =
        applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
    val method: Method = wifiManager.javaClass.getMethod(
        "getWifiApState"
    )
    method.isAccessible = true
    val invoke = method.invoke(wifiManager)
    println(invoke)
    return invoke.toString();
}

实际状态应该是:

public static int AP_STATE_DISABLING = 10;
public static int AP_STATE_DISABLED = 11;
public static int AP_STATE_ENABLING = 12;
public static int AP_STATE_ENABLED = 13;
public static int AP_STATE_FAILED = 14;

WifiManager源代码

希望这会对你有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接