Android权限仅适用于某些情况

时间:2012-08-10 13:48:49

标签: android permissions geolocation usability

我想在我的应用中仅为来自某个国家/地区的用户使用地理位置,以便查找国家/地区(设备上的语言没有此国家/地区)。

我的应用不会将地理定位用于其他任何事情,我不想打扰其他需要地理位置许可的用户/世界。

有没有办法解决这个问题?我唯一能想到的是跳过请求权限并将代码访问地理位置放在try-catch块中,但是在很多情况下这显然不会得到地理位置(尽管我有一个回退策略)。

有一个后备策略,如果我没有得到地理定位,应用程序将不会停止工作。但如果我能得到它,那就太好了,如果我不打扰地理位置允许的其他国家的用户,这也很好。

有任何建议,建议吗?感谢。

2 个答案:

答案 0 :(得分:1)

我认为您最好制作两个版本的应用程序,然后使用Google Play发布商控制台将一个版本配置到您关注的特定国家/地区,另一个版本配置给其他所有人。在这种情况下,我会继续让它成为两个不同的应用程序,两个不同的包名称等。

答案 1 :(得分:0)

这可行。

假设 - 访问IPAddresstoLocation API

使用以下代码获取设备的IP地址

public String getLocalIpAddress()
  {
          try {
              for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                  NetworkInterface intf = en.nextElement();
                  for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                      InetAddress inetAddress = enumIpAddr.nextElement();
                      if (!inetAddress.isLoopbackAddress()) {
                          return inetAddress.getHostAddress().toString();
                      }
                  }
              }
          } catch (Exception ex) {
              Log.e("IP Address", ex.toString());
          }
          return null;
      }

如果您有权访问任何可以返回该位置的API,则使用IP地址,您的问题应该得到解决。