2013-08-04 36 views
0

我試圖讓設備的位置,所以我創建的類本地化:GPS將無法正常工作

public class MainActivity extends Activity implements LocationListener 

和方法

private Location getLocation(Context ctx) { 
    Location location = null; 
    LocationManager lm = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 
    List<String> providers = lm.getProviders(true); 

    for(int i=providers.size() - 1; i>=0; i--) { 
     lm.requestLocationUpdates(providers.get(i), 100, 1, MainActivity.this); 
     location = lm.getLastKnownLocation(providers.get(i)); 
     if(location != null) { 
      Log.i("Used provider", providers.get(i)); 
      break; 
     } 
    } 

    if(location != null) { 
     Log.i("Latitude", String.valueOf(location.getLatitude())); 
     Log.i("Longitude", String.valueOf(location.getLongitude())); 
     Log.i("Accuracy", String.valueOf(location.getAccuracy())+" m"); 
    } 

    return location; 
} 

它的工作原理相當不錯,但它始終即使我在外面,也會跳過GPS。我不得不說我把接口LocationListener的所有overriden方法都留空了,因爲我不知道我應該放在那裏。 有什麼想法?你認爲我使用的代碼可以嗎?非常感謝你!

編輯: 感謝您的回覆,但是我的代碼中一定有問題。通過日誌,我可以看到該設備使用哪個提供商:昨天它使用「被動」,位置完美(26米準確性),而今天它仍然使用「被動」,但準確度爲2288米,令人難以置信!如果我嘗試使用Google地圖找到我的位置,那就太好了。我錯過了什麼嗎?

+0

您是否試圖使用GPS來確定顯示您的應用程序的語言(語言環境)? – michaelcarrano

+0

不,我只是想找到設備(即獲得座標) – minomic

回答

0

我認爲它選擇從GSM/WiFi的位置,因爲它比來自GPS的位置更快,嘗試禁用WiFi或禁用從WiFi/GSM獲取位置,然後嘗試找到。