我如何在Android应用程序中以编程方式设置数据漫游开启/关闭?
答案 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,无法正常漫游数据。
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 商店中有一些)直接在手机上运行命令,但我没有测试过。
>