2011-08-18 113 views
6

我正在写一个应用程序,我需要具体的GPRS连接,即使wifi或3G(或更好)可用。我已经想出了如何禁用wifi(通过使用WifiManager),但是,我似乎无法了解如何以编程方式禁用3G,并且只使用GPRS连接,与在设备设置中手动更改此功能的效果相同。如何强制GPRS连接而不是3G或Wifi?

有没有办法用代码做到这一点?

UPDATE:我正在寻找的东西不一定要在公共的Android API中。它可能在一个未记录的API中,或作为最后的手段,特定于设备的API,我只需要一些可行的东西。但是,我宁愿不必为根设备使用这些功能。

回答

2

该问题不仅仅是私人API,而且第三方APK无法获得修改此类设置的权限。

因此,这样做除了需要对专用接口进行反向工程外,还需要有根设备。

0

据我所知,改变移动网络的类型是不可能从应用程序出来的。

+0

我知道至少有一个应用程序似乎有这种功能(即[扩展控件](https://market.android.com/details?id=com.extendedcontrols)应用程序),所以我不知道认为这是不可能的 – Frxstrem

+0

@Frxstream - 您是否验证过在非根设备上? “可能来自应用程序”倾向于指代Android旨在允许应用程序执行的操作,启动辅助进程,因为超级用户不是设计能力。 –

0

在android框架中,TelephonyManager是向android应用程序提供电话服务的对象。
请参阅http://developer.android.com/reference/android/telephony/TelephonyManager.html
服务确实提供了几种方法来了解物理无线电组件的状态和信息。

但是无法修改设备的物理无线电组件执行其工作的方式。它的设备制造商的专用逻辑,尝试尽最大努力遵守radiophony行业标准,并提供最佳的最终用户体验质量

这是一个角度的公共API的Android点(在Dalvik的)答案,做不在私人android api环境中回答,也不以本地方式或根特权方式回答。

相关问题