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 <joven.ch...@gmail.com> 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 <android-developers@googlegroups.com> >>> To unsubscribe from this group, send email to >>> android-developers+**unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> >>> 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 android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Nick Kralevich | Android Security | n...@google.com | 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 android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en