2

使用我的新 Android 手机遇到了一个小问题:我住在 A 国,但我的移动提供商来自 B 国,因为它更便宜。关于手机资费,我的国家不是 B 国的外国。但是我必须在我的 Android 手机中启用数据漫游。问题是,我也经常在 C 国,每次我都必须关闭数据漫游。

所以我想写一个小应用程序,如果我不在 A 国或 B 国,它会禁用数据漫游,否则会启用它。

我的第一次尝试是使用 GPS 定义位置,但这毫无用处,因为如果每个坐标都在允许的范围内,我必须计算它。所以我认为更好的解决方案是从手机中读取当前提供商,如果该提供商不在白名单中(由我定义),数据漫游将被关闭。

你知道其他方法吗?我怎么能得到当前提供者的名字?以及如何以编程方式禁用数据漫游?

4

2 回答 2

5

您可以使用 TelephonyManager:

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

它的一些方法可能对您的情况有用:

tm.getNetworkCountryIso();
tm.getNetworkOperator();
tm.getNetworkOperatorName();
tm.getSimCountryIso();
tm.getSimOperator();
tm.getSimOperatorName();
于 2010-07-05T00:24:30.187 回答
1

你可以使用反向地理编码吗?像Nominatim这样的东西?只需发送 GPS 坐标并检查您所在的国家/地区。

另一方面,此示例向您展示了如何获取手机当前连接的运营商的名称。

关于禁用数据漫游,输入无​​效的 APN 详细信息似乎可以解决问题。

于 2010-07-04T18:44:22.230 回答