除非他们连接了Wi-Fi,否则我不希望我的用户甚至尝试下载某些内容.但是,我似乎只能判断是否启用了Wi-Fi,但他们仍然可以拥有3G连接.
android.net.wifi.WifiManager m = (WifiManager) getSystemService(WIFI_SERVICE);
android.net.wifi.SupplicantState s = m.getConnectionInfo().getSupplicantState();
NetworkInfo.DetailedState state = WifiInfo.getDetailedStateOf(s);
if (state != NetworkInfo.DetailedState.CONNECTED) {
return false;
}
Run Code Online (Sandbox Code Playgroud)
然而,国家不是我所期望的.即使连接了Wi-Fi,我也会OBTAINING_IPADDR成为状态.
在这里,我的Android设备支持wifi和3G.在此设备上可用的网络的特定时间.因为我的要求是3g可用时我必须上传少量数据.当wifi可用时,必须上传整个数据.所以,我要检查连接是wifi还是3g.请帮我.提前致谢.
我试图找到一种可靠的方法来判断Android设备是否仅支持wifi.我尝试了几种方法:
- 尝试获取设备ID(IMEI/MEID),如果我无法获得IMEI/MEID号码,那么我可以假设该设备仅限wifi.这不起作用,因为某些手机在进入飞行模式时不会返回设备ID. - 尝试阅读TelephonyManager.getPhoneType.这不起作用我正在测试的wifi设备返回PHONE_TYPE_GSM,而我希望它返回PHONE_TYPE_NONE.
我想知道是否有人能成功区分仅限wifi的设备和非wifi的设备.