-2

ユーザーの緯度経度情報を取得したい。ACCESS_FINE_LOCATION は提供できますか? 「GPS、携帯基地局、Wi-Fi などの位置情報源から正確な位置情報にアクセスすることをアプリに許可します。」

では、「GPS」はどのような種類のデータを提供するのでしょうか? ユーザーの緯度と経度の情報が欲しいだけです。実装方法を教えてください。

どうもありがとうございました。

4

1 に答える 1

0

LocationManagerは、システム ロケーション サービスへのアクセスを提供するクラスです。

LocationManager を使用するには、2 つの権限のいずれかが必要です

ACCESS_COARSE_LOCATION または ACCESS_FINE_LOCATION

ACCESS_COARSE_LOCATIONGPSにアクセスできないため、おおよその位置情報を提供し、セルタワーとWi-Fiのみを使用しますが、バッテリーの使用量とパフォーマンスは安価です.

ACCESS_FINE_LOCATIONGPS にアクセスして緯度と経度の情報を提供するため、より正確ですが、より多くのリソースを消費します。

したがって、緯度と経度の情報をより正確に取得したい場合は、ACCESS_FINE_LOCATION

使用許可

   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    
    <uses-permission android:name="android.permission.INTERNET" />

次に、現在の場所を取得します

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
    ...
    }
    @Override
    public void onLocationChanged(Location location) {

 //Use Location information from here

     Log.d("Latitude:" + location.getLatitude() + ", Longitude:" + location.getLongitude());
    }

    @Override
    public void onProviderDisabled(String provider) {
    Log.d("Latitude","disable");
    }

    @Override
    public void onProviderEnabled(String provider) {
    Log.d("Latitude","enable");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    Log.d("Latitude","status");
    }
于 2013-07-26T02:42:22.693 に答える