2011-11-11 49 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导致更新不准确,用户将不得不使用较弱版本的应用程序。

相关问题