我想写一个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
}
答案 0 :(得分:0)
谷歌从Android 5.0 Lollipop开始禁用第三方对2G / 3G / LTE切换设置的访问权限。
因此,如果没有Rooting运行OS android 5.0及更高版本的设备,无论您声明的要求可能无法实现!