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

jk9hmnmh  于 11个月前  发布在  Android
关注(0)|答案(1)|浏览(93)

我无法在文档中找到如何检索,如果设备配置为便携式热点.
我读过How to detect if a network is (configured as) a mobile hotspot on Android?,但我不知道该功能是否已实现?

relj7zay

relj7zay1#

您可以使用下面的代码来检查您的设备上是否启用了Tethering:

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官方将状态标记为 * 状态:无法修复(Obsessive)*

相关问题