1

Fused locationを使用して簡単なロケーション サービスを作成し、実際のデバイスGenymotion のAndroid 仮想デバイスでテストしました。

場所を取得する間隔は5秒です。

実際のデバイスでは問題なく動作し、間隔はほぼ正確に 5 秒です。ログを確認してください: ( onLCOnLocationChanged用です)

 03-17 11:59:27.115: I/Locationing_GpsService_Test(27147): onLC:Now!
 03-17 11:59:32.189: I/Locationing_GpsService_Test(27147): onLC:Now!
 03-17 11:59:37.259: I/Locationing_GpsService_Test(27147): onLC:Now!
 03-17 11:59:42.171: I/Locationing_GpsService_Test(27147): onLC:Now!
 03-17 11:59:47.215: I/Locationing_GpsService_Test(27147): onLC:Now!
 03-17 11:59:52.240: I/Locationing_GpsService_Test(27147): onLC:Now!

Genymotions仮想デバイスでは、間隔は 1 秒のようになります。

03-17 12:10:20.280: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:21.270: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:22.269: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:23.271: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:24.273: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:25.273: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:26.275: I/Locationing_GpsService_Test(2616): onLC:Now!
03-17 12:10:27.273: I/Locationing_GpsService_Test(2616): onLC:Now!

位置情報リクエストを初期化するためのコード:

    mLocationRequest = new LocationRequest();
    mLocationRequest.setInterval(5000);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

ここで何が起こっているのか、誰か助けてくれませんか?

4

3 に答える 3

1

追加するだけmLocationRequest.setFastestInterval(5000);でうまくいき、Genymotion の仮想デバイスも 5 秒間隔で位置情報の更新を要求するようになりました。

于 2015-03-17T11:50:14.983 に答える
1

Genymotion は位置情報をすぐに取得してアプリに渡すため、実際のデバイスのように待つ必要はありません。実際の G​​PS センサーのように GPS 衛星を見つけるプロセスをエミュレート (またはシミュレート) しません。また、モバイル GPRS や公衆 Wi-Fi の代わりに PC のインターネット速度を使用するため、そこから位置情報も取得します。ほぼすぐに。同じことがADBエミュレーターにも当てはまります。位置情報サービスをテストするには、実際のデバイスを使用する必要があります。

于 2015-03-17T11:50:50.280 に答える