2012-03-18 6 views
3

をGPSのpostionをゲット!私は、このリスナーを登録アンドロイド:私は<em>が(ちょうど周りに1キロ精度の)</em>正確である必要はないが、私は非常に<strong>速い</strong>それを必要としない私のアプリ内のGPS位置を見つける必要が迅速

(1S-5S):

mlocListener = new MyLocationListener(); 
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 
mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); 

しかし、それは修正を見つけるために時間がかかりすぎます!誰かが私が場所をより速く見つけることができる方法を知っていますか(私は基本的にちょうど現在の町が必要です)。 ありがとう!

答えて

5

このため、基準を使用して条件を定義することができます。

public void setCriteria() { 
     Criteria criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     criteria.setAltitudeRequired(false); 
     criteria.setBearingRequired(false); 
     criteria.setCostAllowed(true); 
     criteria.setPowerRequirement(Criteria.POWER_MEDIUM); 
     provider = locationManager.getBestProvider(criteria, true); 
    } 

詳しくはlinkを参照してください。

次に、プロバイダを使用して場所を取得します。これが役立つ

希望は...

7

非常にきめ細かな場所は必要なく、すばやく必要なので、getLastKnownLocationを使用する必要があります。このような何か:

LocationManager lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
Criteria crit = new Criteria(); 
crit.setAccuracy(Criteria.ACCURACY_COARSE); 
String provider = lm.getBestProvider(crit, true); 
Location loc = lm.getLastKnownLocation(provider); 

編集: アンドロイドのdevのブログは、これを行うに素敵なポストhereを持っています。このブログのスニペットは、すべてのロケーションプロバイダを繰り返して、最後に知られている場所を取得します。これはあなたが必要としているようです。

List<String> matchingProviders = locationManager.getAllProviders(); 
for (String provider: matchingProviders) { 
    Location location = locationManager.getLastKnownLocation(provider); 
    if (location != null) { 
    float accuracy = location.getAccuracy(); 
    long time = location.getTime(); 

    if ((time > minTime && accuracy < bestAccuracy)) { 
     bestResult = location; 
     bestAccuracy = accuracy; 
     bestTime = time; 
    } 
    else if (time < minTime && 
      bestAccuracy == Float.MAX_VALUE && time > bestTime){ 
     bestResult = location; 
     bestTime = time; 
    } 
    } 
} 
+0

'ACCURACY_FINE'が欲しかった何の反対のように聞こえます。 –

+0

私の悪いです。 ACCURACY_COARSEに変更されました –

関連する問題

 関連する問題