在Android上开启/关闭屏幕时自动切换2G / 3G

时间:2012-10-04 10:29:41

标签: android android-networking telephonymanager

我想写一个Android应用程序。当屏幕关闭时,此应用程序应仅为移动数据设置2G。屏幕打开时,应设置移动数据(2G / 3G)。

为此,我应该以编程方式更改移动数据类型。我怎么能这样做?

我检查了网络类型,得到了正确的结果。

这个rom做到了,但我想知道如何做到这一点:http://www.gregsbits.com/2012/04/saving-your-battery-through-aokp-rom.html

的onCreate()

TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

        if(manager.getNetworkType()==TelephonyManager.NETWORK_TYPE_EDGE){
            tx.setText("Edge"); 

            int enabled = Settings.Secure.getInt(getContentResolver(),
                    "preferred_network_mode", -1);
            Log.d("MYAPP", "2G only enabled: " + enabled);

        }
        else{
            tx.setText("3G");
            cm.setNetworkPreference(TelephonyManager.NETWORK_TYPE_EDGE); //I'm trying
            cm.startUsingNetworkFeature(TelephonyManager.NETWORK_TYPE_EDGE, "Deneme"); //I'm trying

        }

1 个答案:

答案 0 :(得分:0)

谷歌从Android 5.0 Lollipop开始禁用第三方对2G / 3G / LTE切换设置的访问权限。

因此,如果没有Rooting运行OS android 5.0及更高版本的设备,无论您声明的要求可能无法实现!