2

国を調べるために、特定の国のユーザーに対してのみアプリで地理位置情報を使用したいと考えています (デバイスの言語にはこの国がありません)。

私のアプリは地理位置情報を他の目的で使用しておらず、他のユーザーや世界に地理位置情報の許可を求めて迷惑をかけたくありません。

これを解決する方法はありますか?私が考えることができる唯一のことは、パーミッションの要求をスキップして、地理位置情報にアクセスするコードを try - catch ブロックに入れることですが、これは多くの場合、明らかに地理位置情報を取得しません (ただし、これにはフォールバック戦略があります)。

フォールバック戦略があります。地理位置情報を取得しなくても、アプリは動作を停止しません。でも取得できればいいですし、ジオロケーションの許可で他の国のユーザーに迷惑をかけないのもいいですね。

提案、アドバイスはありますか?ありがとう。

4

2 に答える 2

1

アプリケーションの 2 つのバージョンを作成し、Google Play パブリッシャー コンソールを使用して、関心のある特定の国に 1 つのバージョンをプロビジョニングし、他のすべての国にもう 1 つのバージョンをプロビジョニングする方がよいと思います。この場合、先に進み、2 つの異なるアプリ、2 つの異なるパッケージ名などにします。

于 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 に答える