是否可以在 android 中以编程方式切换 APN?

Is it possible to switch APN programatically in android?

我正在尝试开发一个应用程序,我需要在其中以编程方式连接到特定的 APN 以进行网络测试。

作为用户,我可以通过 "Settings" -> "Wireless & networks" -> "Mobile Networks"(长按)-> "Access Point Names" 来完成此操作。它甚至会让我手动添加一个新的。

我想知道,应用程序有没有办法自动执行此操作?我有根权限和你可能需要的一切。

如果有人知道 android 来源,您能告诉我去哪里研究这个屏幕的行为吗?我试过在那里潜水,但我有点迷路了。

希望您正在寻找这个。以下链接来自 Android 设置应用源代码。

add new apn

Set as default

除了 7383 指出的内容之外,我正在回答我自己的问题。希望这对某人有所帮助。

类似于ApnEditor,我其实是在找ApnSettings (link to cyanogen)。我以为这个屏幕是由 android 提供的,并没有怀疑 "Settings" 实际上是一个应用程序。

应用程序不能像我们通常那样与 IDE 一起使用,它应该使用 android 之类的 makefile 进行编译,或者编辑它的源代码,使其成为建议的 "ide-compatible" here

现在,要添加或编辑 APN,您不能只将该代码放在任何应用程序中。您需要 android.permission.WRITE_APN_SETTINGS 这是仅对系统应用程序可用的权限。该应用程序不可移植,但似乎可以使用有根 phone 或自定义 rom 来完成。更多信息 here and here