设置数据漫游开/关

时间:2010-05-05 12:47:30

标签: android

我如何在Android应用程序中以编程方式设置数据漫游开启/关闭?

6 个答案:

答案 0 :(得分:4)

提前为重新开启死亡帖子道歉,但我已设法通过调用此可执行文件来实现它:

su -c settings put global data_roaming0 1

还要获取第一张SIM卡的漫游设置:

su -c settings get global data_roaming0

答案 1 :(得分:2)

如果您的应用是signatureOrSystem / Privileged应用(应用程序驻留在/ system / priv-app中),并且您在系统/ etc / permissions中拥有有效的android.permission.WRITE_SECURE_SETTINGS权限。然后你可以这样做。

启用:

Settings.Global.putInt(context.getContentResolver(), Settings.Global.DATA_ROAMING, 1)

停用:

Settings.Global.putInt(context.getContentResolver(), Settings.Global.DATA_ROAMING, 0)

答案 2 :(得分:1)

我希望无法打开数据漫游以编程方式,因为从我的角度来看,这将是一个严重的安全问题...... 数据漫游(即通过外国网络传输UMTS数据)可能会导致网络提供商收到巨额账单 - 至少在欧洲是这样。

答案 3 :(得分:0)

如果当前正在启用数据漫游,那么我认为您可以操纵接入点名称,以使数据服务看起来不可用。请参阅此post,该apndroid也链接到API。您可以浏览他们的来源并查看他们采取的方法。

如果用户已将数据漫游设置为关闭,则此方法将不起作用。虽然您可以提示用户在安装/设置过程中打开它,这是路径apndroid。

apndroid还提供{{3}}来更改这些类型的设置,这可能比重新实现相同的功能更方便。

答案 4 :(得分:0)

在使用su启用数据漫游的有根设备上,在多SIM卡的设备上,数据漫游设置特定于sim卡。

因此,您需要获取可用于数据通话的SIM卡

sim_num = settings get global multi_sim_data_call

,并在data_roaming + sim_num设置中使用它。 EG sim_num 3

settings get global data_roaming3

如果该参数为null,则不是多卡模拟设备,请使用data_roaming,否则请使用

settings put global data_roaming3

答案 5 :(得分:0)

我能够在我的双卡摩托罗拉 G8 上启用数据漫游,而无需通过 ADB 对其进行 root。我把程序贴在这里,因为手机有bug,无法正常漫游数据。

  1. 您需要一台计算机并安装 ADB installed
  2. Enable developer mode and USB debugging 在您的手机中
  3. 通过 USB 将手机连接到计算机并接受调试连接。
  4. 启动“adb shell”,确保它正确连接到您的手机。
  5. 发出命令
<块引用>

settings put global data_roaming1 1

为 SIM 卡 1 启用数据漫游,或

<块引用>

settings put global data_roaming2 1

为 SIM 2 启用它

注意:如果您没有 USB 数据线,可以通过 wifi 完成,但配对过程是 bit complicated and version dependent

如果您没有电脑,可以使用“本地 adb”应用程序(Play 商店中有一些)直接在手机上运行命令,但我没有测试过。

>