谷歌安卓 - 如何判断3G和2G是否已开启

10

我正在为谷歌安卓开发一个简单的应用程序,用于打开和关闭wifi、3g或2g。

我查看了http://developer.android.com/reference/android/net/wifi/WifiManager.html#isWifiEnabled(),你可以查看wifi是否已启用或禁用,并使用http://developer.android.com/reference/android/net/wifi/WifiManager.html#setWifiEnabled(boolean)来打开和关闭wifi。

我想知道是否可以对3G和2G/GPRS进行相同的操作? 我知道这是可能的,因为您可以关闭3G并保持2G开启。


你找到了哪种方法可以关闭3G并保持2G开启? - Waylon Flinn
在无线选项中,您可以选择“仅使用2G网络以节省电源”。 - Amandasaurus
2个回答

13

2G/3G

要确定您的网络类型,请使用以下方法:

TelephonyManager.getNetworkType();

以下是一些示例代码:

bool is3G = (manager.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);

可以在此处找到有关该类的文档:TelephonyManager


开关

要检查您的电话无线电是否打开或关闭,请使用:

ServiceState.getState();

要设置它,请使用:

ServiceState.setState(STATE_POWER_OFF);

目前不清楚 setState 方法是否存在于所有设备和所有状态中。此方法没有文档说明。可以在 ServiceState 找到该类的文档。

这个问题可能也与以下问题相关:http://code.google.com/p/android/issues/detail?id=1065


2
您可以使用ConnectivityManager。类似这样:
ConnectivityManager connectivityManager =(ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接