Google Android - 如何判断 3g 和 2g 是不是打开

Posted

技术标签:

【中文标题】Google Android - 如何判断 3g 和 2g 是不是打开【英文标题】:Google Android - how to figure out if 3g and 2g is turned onGoogle Android - 如何判断 3g 和 2g 是否打开 【发布时间】:2010-10-20 07:44:25 【问题描述】:

我正在为 Google android 开发一个简单的应用程序来打开和关闭 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保持开启? 在无线中您可以选择“仅使用 2G 网络以节省电量” 【参考方案1】:

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();

【讨论】:

以上是关于Google Android - 如何判断 3g 和 2g 是不是打开的主要内容,如果未能解决你的问题,请参考以下文章

Android 判断网络是不是可用以及网络类型(WIFI,2G,3G,4G)

Android究竟是如何判断是不是在线的?

如何在android中以编程方式关闭3G数据连接?

如何在 Android SDK 中启用/禁用 3G/2G

如何在 Android 上以编程方式关闭 3G/数据?

如何在android中检查3g是不是处于活动状态