ホームページ > Java > &#&チュートリアル > Android アプリがネットワーク プロバイダーを使用して位置情報を更新しないのはなぜですか?

Android アプリがネットワーク プロバイダーを使用して位置情報を更新しないのはなぜですか?

Linda Hamilton
リリース: 2024-12-03 11:32:11
オリジナル
614 人が閲覧しました

Why Isn't My Android App Updating Location Using the NETWORK Provider?

Android で NETWORK プロバイダーを使用して現在の位置を取得する方法

Android での現在の位置の取得は、モバイル アプリケーションの一般的なタスクです。ただし、NETWORK プロバイダーを使用する場合は、基礎となるメカニズムを理解することが重要です。この記事では、NETWORK プロバイダーの使用時に、質問で提供された元のコードが場所を更新しない理由を調べます。

元のコードの問題

元のコードは LocationManager を利用して位置情報の更新を要求します。 GPS 測位は正しく処理されますが、ネットワーク測位は適切に処理されません。これは、コードが位置の変更を処理する LocationListener を定義していないためです。

LocationListener の定義

位置の更新を受信するには、LocationListener を定義する必要があります。物体。このオブジェクトは、場所が変更されるたびに呼び出されます。次のコード スニペットは、これを行う方法を示しています。

private final LocationListener mLocationListener = new LocationListener() {
    @Override
    public void onLocationChanged(Location location) {
        // Your code here to handle the location change
    }
};
ログイン後にコピー

位置情報の更新のリクエスト

LocationListener を定義したら、LocationManager から位置情報の更新をリクエストする必要があります。 。次のコード スニペットは、GPS プロバイダーからの更新をリクエストする方法を示しています:

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_REFRESH_TIME,
LOCATION_REFRESH_DISTANCE, mLocationListener);
ログイン後にコピー

同様に、NETWORK プロバイダーからの更新をリクエストするには、次のコードを使用します:

mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_REFRESH_TIME,
LOCATION_REFRESH_DISTANCE, mLocationListener);
ログイン後にコピー

権限の宣言

必ず適切な権限を宣言してください。 AndroidManifest.xml ファイル。 NETWORK プロバイダーを使用するには、次の権限が必要です。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
ログイン後にコピー

結論

LocationListener を定義し、NETWORK プロバイダーから位置情報の更新を要求することで、次のことが可能になります。 Android アプリケーションの NETWORK プロバイダーを使用して、現在の場所を正常に取得します。

以上がAndroid アプリがネットワーク プロバイダーを使用して位置情報を更新しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート