android:如何通过代码限制数据访问2g?

时间:2012-03-25 21:29:27

标签: android system preferences

我想设置系统首选项(按代码)只使用2g网络而不是使用3g。到目前为止,我还没有找到任何可以帮助我的东西。我想我需要通过ConnectionManager设置它?任何人都可以指出我在正确的方向吗?

2 个答案:

答案 0 :(得分:3)

不幸的是,你不能这样做。您可以做的最好的事情是将用户带到相关的设置屏幕(移动网络设置),他们可以自己选择。实际上没有API来更改设置。

一些ROM(例如CyanogenMod)将其构建到系统中,如果您作为系统应用程序生根/安装,可能会有选项,但如果您想要标准/大量适用的东西,那么我担心您不在运气。

答案 1 :(得分:-1)

使用以下代码 公共类CheckNetworkType扩展了Activity {     private static final String tag =“CheckNetworkType”;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TelephonyManager tm =  (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);        
    if(tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_EDGE )
    {
        //  Network type is 2G
        Log.v(tag, "2G or GSM");
    }
    else 
    if(tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_CDMA)
    {
        // Network type is 2G
        Log.v(tag, "2G or CDMA");
    }
    else
    if(tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS)
    {
        // Network type is 3G
        Log.v(tag, "3G Network available.");
    }      
}

}