2

何年も機能している getLastKnowLocation コードがいくつかありますが、Samsung Galaxy S3 4.0.4 では機能しません。

Location location = null;

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
// The S3 returns null here (even though location is enabled), google maps works. 
try {
  location = locationManager.getLastKnownLocation(provider);
} catch (IllegalArgumentException e) {

}
if ( location == null ) { // only S3 gets this....
   location =  locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
}

PASSIVE_PROVIDER を追加すると、場所は取得できますが、onLocationChanged は取得されないことに気付きました。同じコードは、私が 2.1 から 4.1 までテストしたすべてのシステムで動作します (CM10 はさらに混乱しているように見えます)。

何が起こっているかについてのアイデアはありますか?バグ/機能?

同様の問題を抱えている他の人を見つけましたGalaxy S3でGPS位置情報が更新されない

4

2 に答える 2

1

これは Android のバージョンとは関係ありません。このコードは Galaxy Nexus 4.2.2 で動作し、S3 4.1 や Sony XPeria S 4.0.4 では動作しません。

GPS の位置があなたを検出していないのではないかと疑っています (これには時間と良好な GPS 信号が必要です)。アプリで GPS が応答しないか有効になっていないことがわかった場合、ネットワーク検出に切り替えます (~45 メートルの精度は私の場合はそれほど悪くありません)。半径 10 Km のデバイスを検索する必要がある場合)

于 2013-03-25T17:35:50.697 に答える
0

電話を 4.1 にアップグレードしたところ、バグ/機能が消えました。

于 2012-10-27T10:37:14.063 に答える