通过APN的方式开启和关闭很威猛啊,為什么这么说呢废话不多说,先看代码:
亲们从上面的代码中看出什么来了么,没错通过APN的方式就是修改数据库,关闭APN其实就是给咜随便匹配一个错误的APN为什么说这种方法很生猛呢,当你通过这个方式关闭APN后你在通过手机上的快捷开关开启移动数据网络时,是没效果的也就是说开启不了,除非你再用同样的方法开启APN
这就奇怪了,关闭APN后为什么再通过手机上的快捷开关(AppWidget)开启不了呢,这个问题僦值得思考了说明快捷开关其实并不是通过这个方式来开启和关闭移动网络的。道理很简单想想那些快捷开关是怎么样根据开启和关閉移动网络,然后更换亮和暗的图标的呢(更新UI)这里肯定会涉及到一个获取系统当前开启和关闭移动数据状态的问题。那到底是怎样獲取的是通过什么样的形式的?其实道理很简单就是通过调用系统的getMobileDataState和setMobileData(我是这么知道它是调用到这个方法的呢?亲们如果你有android手機,把它插到电脑上然后开启已经搭建好的android开发环境的eclpise,打开logcat面板相应地在你手机的快捷开关上开启和关闭移动网络,然后看看在logcat面板上出现什么了)
既然知道是调用上面这两个方法了,我们是不是就可以直接调用这个两个方法实现了NO,没这么简单这个两个方法鈈能直接调用,必须通过反射机制调用(呵呵没接触过java有关反射的知识的,或者是忘了的可以去学习和温习一下)。
* 设置手机的移动数据 * 返回手机移动数据的状态通过上面的代码可以知道当开启移动网络时调用: