0

ユーザーの位置を見つけるために getLastKnownLocation メソッドを使用していますが、このメソッドは常に null を返します。さまざまなシステム バージョン (2.2.1、4.0.4 など) で使用している方法をテストしてきましたが、すべて正常に動作します。2.3.3 では常に null を取得し、位置情報を取得できたことが一度もありませんでしたが、他のシステム バージョンでは常に位置情報を取得しましたが、null は一度も表示されませんでした。これは、私が準備しているすべてのテスト条件で、実際のデバイスとエミュレーターの両方で発生します。

getLastKnownLocation がどのように機能するかを知っています。プロバイダーが有効になっているかどうかを確認しています。場所の更新を要求しており、マニフェストで正しいアクセス許可を使用しています。

その正確なシステムバージョンには何か問題があると思います。このトピックに関する私の考えを確認できる人はいますか? Android 2.3.3 での位置取得にバグはありますか?

4

2 に答える 2

1

getLastKnownLocationnull前の場所がない場合は戻ることができます。その場合は、onLocationChanged登録したリスナーで値を待つ必要があります。

GPS は大都市や建物内などでは機能しないことに注意してください。また、一部のデバイスには、A-GPS などの追加の位置取得メカニズムがあります。したがって、デバイス固有の問題である可能性もあると思います。

2.3.3 に問題がある可能性は非常に低いです。

于 2012-10-08T11:11:54.100 に答える
0

Map アプリケーションを開発したときに同じ問題に直面しました。長い間試した後、解決策を見つけました。

location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            locManager.requestLocationUpdates(provider,0, 0, locationListener);
            location = locManager.getLastKnownLocation(provider);
            locManager.requestLocationUpdates(provider,0, 0, locationListener);

getLastKnownLocation と requestLocationUpdates を 2 回呼び出すと、現在の場所が最後の場所に設定されます。そして、あなたの問題は解決されます、

于 2012-10-08T11:21:49.953 に答える