如何在Android设备上检查手机网络

时间:2011-04-03 12:08:38

标签: android networking telephonymanager

我知道如何检查我是否可以访问互联网(using the code from this post),,但是可以检查手机是否有电话网络访问权限吗?例如,有人可能通过Wifi访问互联网,但没有电话网络访问权来发送短信或拨打电话。

在我的情况下,在使用真实设备(三星Galaxy S)时,我可以打开我的3G网络(然后手机会检测到我没有连接到互联网),但我仍然可以打电话打电话和发短信。我想我必须使用其他网络...

如何测试电话网络是否已连接?我需要TelephonyManager吗?

谢谢你的时间。

梅尔

2 个答案:

答案 0 :(得分:3)

你肯定不会用这个: getNetworkType()

boolean hasNetwork = android.telephony.TelephonyManager.getNetworkType() != android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; 
// True if the phone is connected to some type of network i.e. has signal

答案 1 :(得分:1)

上述答案对我的某个应用用户无效 - 他已连接到网络,但他的NetworkType未知。屏幕截图:http://dl.dropbox.com/u/5072192/SC20130317-161413.png

我正在检查NetworkOperator字段。 (从这里的第一个答案What is the correct way of checking for mobile network available (no data connection)

public static boolean isMobileAvailable(Context acontext) {       
    TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);       
    return (tel.getNetworkOperator() != null && !tel.getNetworkOperator().equals(""));      
}