首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果在OS 9上打开了移动数据,则无法连接到wifi

如果在OS 9上打开了移动数据,则无法连接到wifi
EN

Stack Overflow用户
提问于 2019-06-04 21:39:53
回答 1查看 48关注 0票数 0

我正在开发一个应用程序,我需要连接到物联网设备,这个物联网设备成为通信的热点。我在Android 9(Pie)中遇到了一个问题,如果移动数据是开着的,那么请求发送到移动数据而不是Wifi,它在较低版本中工作得很好。那么如何在Andoird 9中强制手机发送请求到wifi而不是手机呢?

EN

回答 1

Stack Overflow用户

发布于 2019-08-06 07:57:50

您可以通过反射使用此方法来了解用户是否在移动端启用了数据。

代码语言:javascript
运行
复制
private static boolean isMobileDataEnabled(Context context) {
  boolean enabled = false;
  ConnectivityManager cm =
    (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  try {
    Class cmClass = Class.forName(cm.getClass().getName());
    Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
    method.setAccessible(true);
    enabled = (Boolean) method.invoke(cm);
  } catch (Exception e) {
    Log.e("DANG", e.toString());
  }
  return enabled;
}

如果是,那么你应该要求用户禁用数据并打开wifi。除非用户关闭移动数据,否则该对话框不会被关闭。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56445132

复制
相关文章

相似问题

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