2011-11-11 91 views
0

鑑於此代碼如果Android設備沒有GPS作爲位置提供商,會發生什麼

if (!locator.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 


     //consider forcing user to turn on gps here 
    } else { 

     provider = LocationManager.GPS_PROVIDER; 
    } 

如果設備沒有GPS會發生什麼。現在,如果沒有啓用該提供程序,那麼我將跳轉用戶的系統設置以將其打開。但如果不存在呢?如何處理。我不想將這些用戶鎖定在應用程序之外。

+0

你有沒有寫一個測試,看看自己? – jsmith

回答

2

如果GPS提供商不可用(或啓用),然後再嘗試任何你可以得到:

Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_HIGH); 
criteria.setPowerRequirement(Criteria.POWER_HIGH); 

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
String provider = lm.getBestProvider(criteria, true); 

這假定你喜歡一個粗略的位置上沒有地位可言。

0

如果你想要精確的位置,你只需要GPS。如果設備根本沒有GPS,那麼您可以通過NETWORK_PROVIDER以較低的準確度進行估算。如果您只需要用戶的一般位置(城市的西邊,紀念館附近等),這通常是合適的。如果你絕對需要一個特定的位置,在你的應用程序工作的具體準確度內,那麼你沒有GPS的用戶只是運氣不好。

另外,如果您啓用GPS並且用戶沒有GPS,它將不會得到更新。在這種情況下,您必須提及由於缺少GPS導致更新不準確,用戶將不得不使用較弱版本的應用程序。

相關問題