我需要检查Android设备上是否存在GPS系统。
我看到了对以下问题的回复, How to check for the presence of a GPS sensor?,但需要使用3级或4级API级别。
链接上的答案最低API级别为5 对于PackageManager.FEATURE_LOCATION_GPS常量,hasSystemFeature()和8。
提前致谢。
更新:
使用以下代码,实现CommonsWare的解决方案。
boolean gpsOnBoard;
LocationManager locMan = (LocationManager) mCtx.getSystemService(Context.LOCATION_SERVICE);
List<String> locProvs = locMan.getProviders(true);
// check if we have a valid list of providers
if (locProvs != null)
{
gpsOnBoard = false;
// check all providers
for (String locProvName:locProvs)
{
if (locProvName.equals(LocationManager.GPS_PROVIDER))
{
// we have GPS hw onboard
gpsOnBoard = true;
}
}
答案 0 :(得分:-1)
在LocationManager
上致电getProviders()
,看看有哪些提供商。
理想情况下,您不会在应用中硬编码GPS支持,因为即使硬件存在,用户也可能禁用该提供商。请考虑使用Criteria
和另一种getProviders()
来帮助您找到合适且可用的提供商。