使用我的新Android手机确立了一个小问题:我住在A国,但我的移动服务提供商来自B国,因为它更便宜。关于移动电话,我的国家不是国家B的外国。但是我必须在我的Android手机中启用数据漫游。问题是,我经常在国家C和每次我必须关闭数据漫游。
所以我考虑编写一个小应用程序,如果我不在国家A或B中,则禁用数据漫游,否则启用它。
我的第一次尝试是使用GPS定义位置,但这是无用的,因为如果它在允许的范围内,我必须计算每个坐标。所以我认为更好的解决方案是从电话中读取当前提供商,如果此提供商不在白名单中(由我定义),则关闭数据漫游。
你知道其他方法吗?我怎么能得到当前提供商的名字?以及如何以编程方式禁用数据漫游?
答案 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细节就可以了。