2017-10-11 40 views
-6

NETWORK_PROVIDERでポジションを達成するAndroidアプリを開発していますが、以前のバージョンで正常に動作していましたが、Android 7で実行する際に問題があります。これはコードです:getLastKnownLocation()でAndroidアプリがクラッシュする

LocationManager posM; 
double latitude; 
double longitude; 

List<Address> addresses = null; 

try { 
    posM = (LocationManager) getSystemService(LOCATION_SERVICE); 
    Location location = posM.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    latitude = location.getLatitude(); 
    longitude = location.getLongitude(); 

    Geocoder geocoder; 

    geocoder = new Geocoder(Activity1.this, Locale.getDefault()); 

    addresses = geocoder.getFromLocation(latitude, longitude, 1); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

それがAndroidの7にクラッシュなぜ私にはわからない... getLastKnownLocationリターンはほとんどの時間をゼロにするので、ヘルプ

+5

スタックトレースを追加してください – JFPicard

+0

show stacktrace –

+0

すみません、電話でスタックトレースを取得するにはどうすればよいですか? – Pietro

答えて

1

いただきありがとうございます。システムは一般的にあなたのlocationを知らない。 requestLocationUpdatesまたはrequestSingleUpdateを使用してlocationの検出をオンにし、実際の位置を取得します。

+0

ありがとう、なぜこれはAndroid 7でのみ起こりますか?それは5で完璧に動作します... – Pietro

+1

システムは、それが既に知っている場所にあるかどうかに依存して、どんなOSでも古くないです。あなたが5でなく7でそれを見ているという事実は偶然です。おそらくあなたはあなたの5デバイスではなく、あなたの7でない場所を使用している別のアプリを持っているかもしれません。または、おそらくキャッシングコードが少しぶら下がった。しかし、それはどんなOSバージョンでも起こりうる。 getLastKnownLocationは最適化として使用できますが、決して依存しません。 –

関連する問題