android - 如何在 Android SDK 中启用/禁用 3G/2G

标签 android 3g

我只是想知道如何使用 Android SDK 启用/禁用 3G/2G,而不仅仅是打算访问 3G 设置页面。谢谢。也有办法做同样的事情,但使用 GPS。谢谢!

最佳答案

没有导出到 SDK 的功能来在 2G 和 3G 之间切换。对于给定的设备,您可能会找出私有(private)功能,但除非使用系统 key 对应用进行签名,否则它不会工作。

不过,您可以通过打开飞行模式来禁用 radio 。

并且您可以创建快捷方式以直接打开相应的设置 Activity ,而不是通过几级菜单到达那里。

如果您自己构建,您大概可以添加您真正想要的功能,但这可能对除了您自己之外的任何人都没有用。

编辑:更多细节 - 要了解其工作原理,请查看设置菜单代码(默认版本,给定设备会有所不同):

http://android.git.kernel.org/?p=platform/packages/apps/Phone.git;a=blob;f=src/com/android/phone/Settings.java;hb=HEAD

Edit: AOSP is no longer served from kernel.org. A browsable mirror of the current phone repository is at https://github.com/android/platform_packages_apps_phone however due to evolution of code organization there is no longer a Settings.java there. One might either use git to reconstruct the version above from this repository, or else try to figure out where the code has migrated to in current releases.

您需要找出您希望在其间切换的一组特定于实现的 NT_MODE_ 常量。并且您需要能够写入安全设置,这需要使用系统 key 进行签名。除非是自定义构建,否则您可能无权访问它。

关于android - 如何在 Android SDK 中启用/禁用 3G/2G,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170472/

相关文章:

java - 在 SQLite 表中使用复合主键设置 ListView 适配器

android - 将 cordova writeFile 用于 20MB 的 blob 崩溃 (Android)

java - 如何检测安卓手机3G On Off事件

linux - 有没有办法在 Linux 上检查 3G 速度连接?

android - AndroidX 迁移后命令行 lint 错误

java - JNI 构建 gradle 无法找到 ndk 目录

android - public View inflate (int resource, ViewGroup root, boolean attachToRoot) 的第三个参数是做什么的?

iphone - 网站在 iPad/iPhone 3G 下显示 JavaScript 错误,但在 WiFi 下不显示

Android 应用程序在 WIFI 和 3G(无代理)上工作,但在 3G 上不工作(如果分配了代理和端口)

3g - TDF 和 PCEF 有什么区别?