0

大まかな位置情報を要求するときに WIFI を除外する方法はありますか? 消費電力が大きく、位置を取得するのに時間がかかるため、GPS を使用したくありません。

しかし、携帯電話の基地局からのみ場所を取得する必要があります。NETWORK_PROVIDER モードでは、Google のデータベースにある WIFI (アクセスポイントの MAC アドレス) も使用されます。私はそれらを使用したくありません。WIFI を NETWORK_PROVIDER から除外する方法はありますか?

ありがとう !

4

1 に答える 1

2

これを取得する 1 つの方法は、ここPASSIVE_PROVIDERに記載されているようにを使用することです。

実際に場所の修正を開始せずに場所を受信するための特別な場所プロバイダー。

このプロバイダーを使用すると、実際に自分で位置情報を要求しなくても、他のアプリケーションやサービスが要求したときに位置情報の更新を受動的に受け取ることができます。このプロバイダーは、他のプロバイダーによって生成された場所を返します。getProvider() メソッドを照会して、場所の更新元を特定できます。アクセス許可 ACCESS_FINE_LOCATION が必要ですが、GPS が有効になっていない場合、このプロバイダーは大まかな修正しか返さない可能性があります。

定数値: 「パッシブ」

あなたが望むものを手に入れるための1つの特定の方法は、次のとおりです。

ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

State mobile = conMan.getNetworkInfo(0).getState();
State wifi = conMan.getNetworkInfo(1).getState();

その後、次のように区別します。

if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
    //mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
    //wifi
}

モバイルまたは Wi-Fi が接続されているかどうかを確認します。Wi-Fi の場合は を使用PASSIVE_PROVIDERし、モバイルの場合は を使用しますNETWORK_PROVIDER

乾杯 :)

于 2013-08-02T06:02:15.740 に答える