我想使用GPS_Provider作爲獲取用戶當前位置的主要方法,但是在某些情況下,GPS不起作用。如果我的應用程序無法使用GPS獲取用戶位置,我想切換到NETWORK_PROVIDER。我怎樣才能實現這個?如果位置管理器無法使用GPS_Provider獲取位置,請切換到NETWORK_Provider
lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
//setting up criteria (biased toward GPS)
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
String providerName = lm.getBestProvider(criteria, true);
//requesting location updates (if app cant use GPS, switch to requestLocationUpdates.NETWORK_PROVIDER)
lm.requestLocationUpdates(providerName, 180000, 0, ll);
理想情況下,我希望GPS可以嘗試首先獲取位置至少60秒,如果它無法獲得它然後切換到網絡提供商。有沒有簡單的方法來實現這一點? – thedeepfield
這聽起來像一個可怕的用戶體驗。但是,如果這是你想要的,那麼你可能需要使用一個處理程序並延遲60秒(或以毫秒爲單位的60秒)。如果您在60秒之前獲得了位置,請刪除處理程序消息。否則處理程序回調將被調用。從處理程序回調中,您可以啓動網絡提供程序。 – StackOverflower