通过手机阅读移动服务提供商

时间:2010-07-04 18:28:00

标签: java android mobile provider

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

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

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

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

2 个答案:

答案 0 :(得分:5)

您可以使用TelephonyManager:

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

它可能对您的案例有用的一些方法:

tm.getNetworkCountryIso();
tm.getNetworkOperator();
tm.getNetworkOperatorName();
tm.getSimCountryIso();
tm.getSimOperator();
tm.getSimOperatorName();

答案 1 :(得分:1)

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

另一方面,this example会向您显示如何获取您的手机当前所连接的运营商的名称。

关于diabling数据漫游,似乎输入无效的APN细节就可以了。

相关问题