2010-12-31 8 views
0

私はこれがトンに頼まれていることを知っているので、私の謝罪します。私は次のコードを持っていて、場所を取得することはできません、常にnull応答。私はすでに更新サービスを使用しているので、このインスタンスのLocationListenerを避けようとしています。場所は実際にはそのようにする必要はありません。したがって、最後の既知の場所が十分です。助けてくれてありがとう。プログラムでAndroidを取得する

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
String providers[] = {"gps", "network", "passive"}; 
Location loc = null; 
for(String x : providers) { 
    loc = lm.getLastKnownLocation(x); 
    if(loc != null) break; 
} 
if(loc != null) { 
    // do something, never reached 
} 

答えて

1

私は、次のコードを持っている、と場所、常にnull応答を取得することはできません。

もちろんです。私はすでに、私はこれが何を意味するのかわかりませんが、私はあなたが好きかどうかLocationListenerが必要になると思われるアップデートサービス

を使用していますので、私は、このインスタンスでLocationListenerを避けるためにしようとしています

それかどうか。

Androidは常にあなたの現在地を確認していません。特にGPSの場合、バッテリーにとっては恐ろしいことです。 Androidは、requestLocationUpdates()またはaddProximityAlert()を使用しているときにのみあなたの場所を確認します。

+0

これが真であれば、getLastKnownLocation()関数のポイントは何ですか?私が本当に望んでいることは、サービスからの最後の既知の場所です。精度は大したことではありません。また、リスナーの場合は、プロバイダごとにリスナーを作成する必要があります。これは4時間ごとに更新するだけなので、大量の無駄になります。 – steveo225

1

エミュレータを使用しているために起こりますが、おそらくこれは起こりますか? 最後に知られている場所を確認しようとしましたが、あなたのようなものがあることを覚えています。 私はそれを使用する前に必ずgetLastKnownLocation(provider)!= nullをチェックします。