0

以下のコードを使用して、アプリで現在の場所を取得しようとしています。

    List<Address> adds = null;
    double lat;
    double lng;
    private Geocoder geocoder;
    String bestProvider;

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    Criteria criteria = new Criteria();
    bestProvider = lm.getBestProvider(criteria, false);
    Location location = lm.getLastKnownLocation(bestProvider);


    if (location == null)
    {
         Toast.makeText(this,"Location Not found",Toast.LENGTH_LONG).show();
    }
    else
    {
        geocoder = new Geocoder(this);
        try 
        {
            users = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
            lat=(double)users.get(0).getLatitude();
            lng=(double)users.get(0).getLongitude();
            System.out.println(" DDD lat: " +lat+",  longitude: "+lng);

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

}

ただし、場所が null として表示され続けるため、場所が見つかりませんというメッセージがアプリに表示されます。何か不足していますか?

マニフェストのアクセス許可:

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

どんな助けでも大歓迎です。

4

1 に答える 1