首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法检查系留是否处于活动状态?

有没有办法检查系留是否处于活动状态?
EN

Stack Overflow用户
提问于 2011-11-04 17:48:53
回答 2查看 5.2K关注 0票数 6

我可以检查程序呼叫android设备是否激活了绑定吗?

我刚看了WifiManager的课。来自WifiInfo的所有变量显示的值与设备上关闭WIFI时的值相同。

Thnak,致以最好的问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-04 18:02:29

尝试使用反射,如下所示:

代码语言:javascript
运行
复制
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method[] wmMethods = wifi.getClass().getDeclaredMethods();
for(Method method: wmMethods){
if(method.getName().equals("isWifiApEnabled")) {

try {
  method.invoke(wifi);
} catch (IllegalArgumentException e) {
  e.printStackTrace();
} catch (IllegalAccessException e) {
  e.printStackTrace();
} catch (InvocationTargetException e) {
  e.printStackTrace();
}
}

(它返回一个Boolean)

正如Dennis建议的那样,最好使用以下代码:

代码语言:javascript
运行
复制
    final Method method = manager.getClass().getDeclaredMethod("isWifiApEnabled");
    method.setAccessible(true); //in the case of visibility change in future APIs
    return (Boolean) method.invoke(manager);

(经理是WiFiManager)

票数 8
EN

Stack Overflow用户

发布于 2013-12-07 03:29:46

首先,您需要获取WifiManager:

代码语言:javascript
运行
复制
Context context = ...
final WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

然后:

代码语言:javascript
运行
复制
public static boolean isSharingWiFi(final WifiManager manager)
{
    try
    {
        final Method method = manager.getClass().getDeclaredMethod("isWifiApEnabled");
        method.setAccessible(true); //in the case of visibility change in future APIs
        return (Boolean) method.invoke(manager);
    }
    catch (final Throwable ignored)
    {
    }

    return false;
}

此外,您还需要在AndroidManifest.xml中请求权限:

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8007361

复制
相关文章

相似问题

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