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

Reply via email to