The permission needed is <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> Android 2.3 and above can do that with the code I supply. I am asking a question how to do it for version below 2.3.
Many apps are doing it, the most popular one I mentioned was JuiceDefender: http://maketecheasier.com/increase-phones-battery-life-with-juicedefender-android/2011/02/25 On Wednesday, 1 August 2012 00:28:33 UTC+8, Robert Greenwalt wrote: > > How to do the permission? That's not your issue - the platform needs to > do it. > > How to turn data on/off? It looks like you'll need a mix of methods. > You're using undocumented methods from the past and present and they may > change in the future. You can do different things dependent on the version > of the platform. > > > On Tue, Jul 31, 2012 at 9:18 AM, wrote: > >> Yes, the next qns is how to do it... >> >> On Wed, Aug 1, 2012 at 12:14 AM, Robert Greenwalt >> <[email protected]>wrote: >> >>> If the app is granted permission by the user it would be ok. And apps >>> that do intelligent things in this area may be useful and welcome. Without >>> permission limits though, yeah this could be a problem. >>> >>> >>> On Tue, Jul 31, 2012 at 9:04 AM, Nick Kralevich <[email protected]> wrote: >>> >>>> >>>> Hmm.... From the platform's point of view, this sounds like a denial >>>> of service attack against other applications on the device. One >>>> application >>>> shouldn't be able to interfere with another application's network >>>> connectivity without the user being involved. >>>> >>>> -- Nick >>>> >>>> >>>> On Tue, Jul 31, 2012 at 8:26 AM, CJ wrote: >>>> >>>>> Hi, I am working on a app to automate some setting eg. to perform >>>>> certain action such as disable mobile data when battery is low or night >>>>> mode etc. >>>>> There are app in the market that able to disable/enable mobile data >>>>> connection like SmartAction and a few more. I also dislike the alter APN >>>>> method so I am looking for better alternatives. >>>>> >>>>> On Tuesday, 31 July 2012 23:14:41 UTC+8, Robert Greenwalt wrote: >>>>> >>>>>> Apps won't be able to alter the APN database after Honeycomb or >>>>>> perhaps ICS. The User can disable data from settings. Why does an >>>>>> application need to disable data? >>>>>> >>>>>> >>>>>> On Tue, Jul 31, 2012 at 8:03 AM, CJ wrote: >>>>>> >>>>>> Hi, >>>>>>> >>>>>>> I have been googling for a while able the best or right way to >>>>>>> disable/enable mobile network. >>>>>>> >>>>>>> I tried the following code which is all over Stackoverflow and is >>>>>>> working fine for gingerbread and higher: >>>>>>> >>>>>>> private void setMobileDataEnabled(Context context, boolean enabled) >>>>>>> throws Exception { >>>>>>> final ConnectivityManager conman = (ConnectivityManager) context >>>>>>> .getSystemService(Context.**CONNECTIVITY_SERVICE); >>>>>>> final Class<?> conmanClass = Class.forName(conman.getClass(** >>>>>>> ).getName()); >>>>>>> final Field iConnectivityManagerField = conmanClass >>>>>>> .getDeclaredField("mService"); >>>>>>> iConnectivityManagerField.**setAccessible(true); >>>>>>> final Object iConnectivityManager = iConnectivityManagerField >>>>>>> .get(conman); >>>>>>> final Class<?> iConnectivityManagerClass = Class >>>>>>> .forName(iConnectivityManager.**getClass().getName()); >>>>>>> final Method setMobileDataEnabledMethod = iConnectivityManagerClass >>>>>>> .getDeclaredMethod("**setMobileDataEnabled", Boolean.TYPE); >>>>>>> setMobileDataEnabledMethod.**setAccessible(true); >>>>>>> >>>>>>> setMobileDataEnabledMethod.**invoke(iConnectivityManager, enabled); >>>>>>> } >>>>>>> >>>>>>> Somehow I didn't find a way to do the same thing for Android 2.2 and >>>>>>> below. Many mentioned to change the APN name to something invalid like >>>>>>> what >>>>>>> app APNDroid did but is that the only way? >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Android Developers" group. >>>>>>> To post to this group, send email to android-developers@** >>>>>>> googlegroups.com <[email protected]> >>>>>>> To unsubscribe from this group, send email to >>>>>>> android-developers+**[email protected]<android-developers%[email protected]> >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/**group/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en> >>>>>> >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Android Developers" group. >>>>> To post to this group, send email to >>>>> [email protected] >>>>> To unsubscribe from this group, send email to >>>>> [email protected] >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/android-developers?hl=en >>>>> >>>> >>>> >>>> >>>> -- >>>> Nick Kralevich | Android Security | [email protected] | 650.214.4037 >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Android Developers" group. >>>> To post to this group, send email to >>>> [email protected] >>>> To unsubscribe from this group, send email to >>>> [email protected] >>>> For more options, visit this group at >>>> http://groups.google.com/group/android-developers?hl=en >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Android Developers" group. >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/android-developers?hl=en >>> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en >> > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

