代码之家  ›  专栏  ›  技术社区  ›  anon

从电话中读取移动提供商

  •  2
  • anon  · 技术社区  · 15 年前

    使用我的新安卓手机带来了一个小问题:我住在A国,但我的手机供应商来自B国,因为它比较便宜。关于手机塔里夫,我的国家不是B国的外国,但是我必须在我的Android手机上启用数据漫游。问题是,我也经常在C国,每次我必须关闭数据漫游。

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

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

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

    2 回复  |  直到 15 年前
        1
  •  5
  •   Jan S.    15 年前

    您可以使用TelephoneManager:

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

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

    tm.getNetworkCountryIso();
    tm.getNetworkOperator();
    tm.getNetworkOperatorName();
    tm.getSimCountryIso();
    tm.getSimOperator();
    tm.getSimOperatorName();
    
        2
  •  1
  •   npinti    15 年前

    你能使用反向地理编码吗?类似的东西 Nominatim ?只需发送GPS坐标并检查您所在的国家。

    另一方面, this example 显示如何获取手机当前连接的接线员的姓名。

    关于破坏数据漫游,输入无效的APN详细信息似乎是一个技巧。