2012-03-20 18 views
4

私は位置情報システムにいくつかの問題があります。 私はlocationListenerを実装するサービスを持っています。 可能な限りネットワークを使用して最適な場所を取得したい、ネットワークが十分正確でない場合はgps(精度300mt以上)。 これは問題です。 5分ごとに場所が必要です(可能であれば、正確ではありません)。 私はで始まる:私は場所を聞くと私は300mtよりも高い精度で位置を取得するとき、私はGPSロケーションシステムに変更したい「onLocationChanged」で同時に複数のロケーションプロバイダー

LocationManager lm=(LocationManager)getApplicationContext().getSystemService(LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_COARSE); 
    criteria.setAltitudeRequired(false); 
    criteria.setBearingRequired(false);   
    String provider=lm.getBestProvider(criteria, true); 
    if(provider!=null){ 


    lm.requestLocationUpdates(provider,5*60*1000,0,this); 

私はこのように、allupdatesを削除してから、GPSの更新を要求した場合:

lm.removeUpdates((android.location.LocationListener) this); 
Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 
    criteria.setAltitudeRequired(false); 
    criteria.setBearingRequired(false);   
    String provider=lm.getBestProvider(criteria, true); 
    if(provider!=null){ 
    lm.requestLocationUpdates(provider,5*60*1000,0,this); 
    } 

システムはgpsupdateを待って停止し、私は近くの部屋にいる場合、それは時間の位置情報の更新なしで滞在することができ、無視時間更新表示。 gpsが「x」秒間に場所を指定していない場合、locationproviderにネットワークに切り替えるよう指示する方法はありますか? gpsがローカライズしていないときの理解方法

または2人のプロバイダから同時に(ネットワークとGPS)のrequestlocationupdateが問題になることがありますか?

提案がありますか?

答えて

1

私はあなたの質問に固有の答えを書いていましたが、私のアンサーがこのexcellent resourceと競合できる方法がないことを認識しました。ロケーションリスナーの賛否両論、賛否両論、それについて説明しています。

AndroidでGPS道路を下っている場合は、必ず読んでください。あなたの上記の質問に答えます。私を信じて、それはあなたの時間の価値がある。

有用な例を実装する各SDKに付属のサンプルもあります。私はその場所の例だったと確信しています。

+0

リンクありがとうございます。 gpsからの更新要求を制御するアラームですべてのサービスを変更しました。私はwifiの場所を調べています。十分正確でない場合はgpsをチェックし、gpslocationが60秒以内に取得できない場合は、gpslistenerを削除してnetworklistenerを残します。 しかし、それは私が好きなものすべてを働かせていない:私はgpsupdateを求めるとき、GPSアイコンが正しく表示されますが、それは固定されて何もしないようです、そして、私は60秒で位置を受信しません。 60秒後、私のサービスはリスニングを止め、アイコンが消えます。私はgpsをオンにしてlocを取得する何かを忘れていますか? – Rabarama

+0

私はリスナーを置いたままにしておきます。あなたはAPPROPIATEの更新を受け取ります。間隔は、時間と空間の両方で、あなたが借りている前に最小間隔/時間を設定することによって、不要なコールバックをカットすることを目的としています。コールバックに表示される結果を信頼し、ガイドの示唆するようにタイムスタンプとメタデータを分析してください。 GPSをロックした後に新しい場所が見つからない場合は、その情報は価値がない可能性があります.Wi-Fiを使用していない限り、新しい情報が即座に取得されます。 – slezica

関連する問題