2013-04-03 73 views
0

我在位置API中遇到了一些問題。在某些設備中,有時它不會提供任何提供商的位置,但重新啓動手機可解決問題。另一方面,當沒有獲取位置時,Google地圖會立即將您置於地圖中,而不會出現任何問題。Android中的位置問題

下面是代碼:

Intent intent = new Intent(Constants.LOCATION_BROADCAST); 
    pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0); 
    Criteria criteria = new Criteria(); 
    criteria.setPowerRequirement(Criteria.POWER_HIGH); 
    if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.FROYO){ 
     criteria.setAccuracy(Criteria.ACCURACY_LOW); 
     locationManager.requestSingleUpdate(locationManager.getBestProvider(criteria, true), pendingIntent); 
    } 
    else { 
     criteria.setAccuracy(Criteria.ACCURACY_COARSE); 
     locationManager.requestLocationUpdates(locationManager.getBestProvider(criteria, true), 0, 0, pendingIntent); 
    } 

有什麼想法?

回答

0

嘗試使用所有的位置提供,看看它是否解決您的問題,即像

LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
List<String> allproviders = lm.getAllProviders(); 
for(String provider : allproviders) { 
    myLocationManager.requestLocationUpdates(provider, 5000, 0, this); 
} 

如果此代碼始終工作,那麼你只需要找出爲什麼你的代碼是無視供應商我的代碼發現。可能很容易與你的力量或準確性有關。