2

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

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

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

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

有什么建议,建议吗?谢谢。

4

2 回答 2

1

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

于 2012-08-10T14:18:01.397 回答
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 地址,您的问题应该得到解决。

于 2012-08-10T13:57:44.990 回答