我有一个应用程序,我希望能够用于从远程查询获取连接状态报告.
我想知道WiFi是否已连接,以及是否通过移动网络启用了数据访问.
如果WiFi超出范围,我想知道我是否可以依赖移动网络.
问题是当我通过WiFi连接时,启用的数据总是返回为真,并且我只能在未通过WiFi连接时正确查询移动网络.
我看到的所有答案建议轮询以查看当前的连接是什么,但我想知道我是否需要移动网络,即使我目前可能通过WiFi连接.
无论如何判断移动网络数据是否在没有轮询的情况下启用以查看是否已连接?
编辑
因此,当通过WiFi连接时如果我转到设置并取消选择"数据已启用",然后在我的应用程序中执行此操作:
boolean mob_avail =
conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable();
Run Code Online (Sandbox Code Playgroud)
mob_avail返回为'true',但我已禁用移动网络数据,所以我希望它是'false'
如果我关闭WiFi,则(正确)没有连接,因为我已禁用移动网络数据.
那么当我通过WiFi连接时,如何检查移动网络数据是否已启用?
UPDATE
我按照ss1271的评论中的建议查看了getAllNetworkInfo()
我在以下3个条件下输出了有关移动网络的信息
WiFi关闭 - 移动数据
WiFi On - 移动数据关闭
WiFi On - 移动数据
并得到以下结果:
WiFi关闭:
mobile [HSUPA],state:CONNECTED/CONNECTED,reason:unknown,extra:internet,roaming:false,failover:false,isAvailable:true,featureId:-1,userDefault:false
WiFi On/Mobile OFF
NetworkInfo:type:mobile [HSUPA],state:DISCONNECTED/DISCONNECTED,reason:connectionDisabled,extra:(none),漫游:false,failover:false,isAvailable:true,featureId:-1,userDefault:false
WiFi On/Mobile On
NetworkInfo:type:mobile [HSPA],state:DISCONNECTED/DISCONNECTED,reason:connectionDisabled,extra:(none),漫游:false,failover:false,isAvailable:true,featureId:-1,userDefault:false
因此,您可以看到isAvailable每次都返回true,并且状态仅在WiFi处于影响状态时显示为Disconnected.
澄清
我不看,看看我的手机是目前移动网络连接.我AM试图建立用户是否已经启用了移动网络/禁用数据访问.他们可以通过转到设置 - >无线和网络设置 - >移动网络设置 - >数据启用来打开和关闭此功能
我使用此链接上的代码完成蓝牙操作: 有没有办法在iOS中以编程方式打开和关闭蓝牙和/或wifi?
但我无法弄清楚如何为Wifi做同样的事情.你如何打开/关闭Wifi?可能吗 ?