5

Android 4.0以降では、への呼び出し

LocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, リスナー)

として例外を与えています

原因: java.lang.IllegalArgumentException: provider=network.

ネットワークが有効になっていても、同じ例外が発生します。

これは報告済みの問題であることは承知しています (http://code.google.com/p/android/issues/detail?id=19857)。

私の質問はです。

Android 4.0以降でネットワークプロバイダーまたはその他の方法(GPSではない)で位置を取得するにはどうすればよいですか?

4

3 に答える 3

1

Android 4.0 フレームワークには未解決の問題があるため、ネットワーク プロバイダーは動作していませんが、最新の Android バージョンは解決され、正常に動作しています。最新の Android フレームワークでコードを確認してください。

于 2012-10-25T07:34:17.030 に答える
0

はい、このサポートは、確認できる新しいバージョンで利用できます..

于 2012-10-25T09:36:20.413 に答える
0

実行時に存在することが保証されていないため、直接プロバイダー文字列を使用しないでください。

次のように、LocationManager から取得したプロバイダーのみを使用します。

    LocationManager locationManager = (LocationManager)context.getSystemService( Context.LOCATION_SERVICE );

    Criteria criteria = new Criteria();
    criteria.setAccuracy( Criteria.ACCURACY_COARSE );
    String provider = locationManager.getBestProvider( criteria, true );

    if ( provider == null ) {
        Log.e( TAG, "No location provider found!" );
        return;
    }

    lastLocation = locationManager.getLastKnownLocation(provider);
于 2012-08-28T04:45:56.690 に答える