如何查找设备是否配置为便携式热点

时间:2018-08-15 06:01:30

标签: android android-wifi personal-hotspot

我在文档中找不到如何将设备配置为便携式热点的方法。

我已经读过How to detect if a network is (configured as) a mobile hotspot on Android?,但不知道该功能是否已实现?

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码检查设备上是否启用了网络共享:

private static Method isWifiApEnabledMethod;

public static boolean isWifiApEnabled(WifiManager wifiManager) {
    if (isWifiApEnabledMethod == null) {
        try {
            isWifiApEnabledMethod = wifiManager.getClass().getDeclaredMethod("isWifiApEnabled");
            isWifiApEnabledMethod.setAccessible(true); //in the case of visibility change in future APIs
        } catch (NoSuchMethodException e) {
            Log.w(TAG, "Can't get method by reflection", e);
        }
    }

    if (isWifiApEnabledMethod != null) {
        try {
            return (Boolean) isWifiApEnabledMethod.invoke(wifiManager);
        } catch (IllegalAccessException e) {
            Log.e(TAG, "Can't invoke method by reflection", e);
        } catch (InvocationTargetException e) {
            Log.e(TAG, "Can't invoke method by reflection", e);
        }
    }

    return false;
}

请不要忘记在AndroidManifest.xml

中添加以下权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

对于上面提到的SO link

该功能不可用,即尚未实现。 有关更多信息,请检查this链接,其中Google正式将状态标记为状态:无法修复(已淘汰)

希望这会对您有所帮助。谢谢!