2012-04-14 9 views
0

私は最高のプロバイダを利用できるようにするために以下のコードを書いています。アンドロイドでLocationProviderのステータスを取得する方法

private static String provider; 

    public static String setCriteria(LocationManager locationManager) { 
     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); 
     LocationProvider locProvide = locationManager.getProvider(provider);   
     if (provider == null) { 
      provider = LocationManager.GPS_PROVIDER; 
     } 
     return provider; 
    } 

私はこのコードを使用して、私が場所を取得するために使用するプロバイダを探しています。今私がチェックしたいのは、プロバイダのステータスです。私はdocからLocationProviderに3states Available、Out of service & TEMPORARILY_UNAVAILABLEがあると読んでいます。今私は場所のリスナーに私はステータスを確認する必要があることを要求する前に。

ステータスがTEMPORARILY_UNAVAILABLEまたはOut of Serviceの場合、ユーザーはそれに応じてメッセージを取得し、それ以外の場合はロケーションを検出します。だから私の質問はどのようにステータスを確認できますか?

誰もが任意のアイデアを持っている場合は親切に私を助けてください...

答えて

0

あなたのLocationmanagerオブジェクトにrequestlocationupdatesを使用して試してみて、あなたのLocationlistenerオブジェクトを実装する...このようなことができます。..私の知る限り

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
LocationListener ll = new mylocationlistener(); 
lm.requestLocationUpdates(provider, 0, 0, ll); 

    private class mylocationlistener implements LocationListener { 
    .... 

    @Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
    switch(status){ 
    case 0: 
    //OutofService 
    break; 
    case 1: 
    //Temporarily unavailable 
    break; 
    case 2: 
    //Available 
    break; 

    } 
} 
+0

あなたの応答に感謝します。私はこれを試してみます... – Prem

+0

それは動作しましたか?まだ問題がありますか? – 5hssba

+0

私はあなたが与えたコードを試しました。私がやったことは、単にトーストのメッセージですが、何も起こっていません。あなたはonStatusChangedがトリガーされる時を教えてくれますか? – Prem

0

これはthe ultimate solutionで、上記の問題を解決することはできません。 boolean変数を使用してisAvailableを使用するかどうかを指定できます。isGPSfix

他にも行うことができますが、like thisを試すことができますが、すべての状況で正常に動作することは保証されていません。

+0

Ok ..提案に感謝しています.... – Prem

関連する問題