Android 应用程序中的 GPS_PROVIDER 错误

Posted

技术标签:

【中文标题】Android 应用程序中的 GPS_PROVIDER 错误【英文标题】:GPS_PROVIDER Error in Android Application 【发布时间】:2012-10-11 06:10:17 【问题描述】:

我创建了一个 android 应用来检索位置。我尝试使用 GPS_PROVIDER,它返回 null .. 但是当我使用 NETWORK_PROVIDER 时工作顺利.. 任何人都可以帮我解决这个问题吗?

这里是代码

位置位置 = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

当我将"NETWORK_PROVIDER" 替换为"GPS_PROVIDER" 时,位置变为空。

我在manifest中添加了以下三个权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>

【问题讨论】:

你的清单文件是什么样的? 我在 manifest 中添加了以下三个权限 您的设备必须通过 WiFi 连接,这就是它与 NETWORK_PROVIDER 配合使用的原因 另外,添加这个基本权限&lt;uses-permission android:name="android.permission.ACCESS_GPS"&gt;&lt;/uses-permission&gt; @Lucifer ACCESS_GPS 不再使用。据了解,那是在 1.0 之前 【参考方案1】:

您的 GPS 位置为空可能有两个原因

    可能是您的 GPS 未激活。尝试通过setting menu =&gt; Location &amp; Security =&gt; Check Use GPS Satellites 激活您的 GPS。 可能您目前在 GPS 不工作的建筑物中。从大楼里出来检查一下。大部分时间都可能发生这种情况。

【讨论】:

+1 是的,同意你的看法,请在第一个选项中显示完整的设置路径,这对像 OP 这样的新用户很有用。:)【参考方案2】:

根据documentation

如果提供者当前被禁用,则返回 null。

确保您的 GPS 在设备上处于活动状态,这样您就不会收到 null。

编辑: 还可以尝试使用GPS_PROVIDER 运行requestLocationUpdates() 或者两次,同时使用NETWORK_PROVIDERLocationManager 以最快的方式检索位置并停止搜索。由于 GPS 位置的检索速度比网络位置慢,因此在找到它后立即停止,因此为 GPS 返回 null。

【讨论】:

NETWORK_PROVIDER 未链接到 GPS。 GPS 已启用并且在我的建筑物内工作正常.. 我添加了 。仍然无法正常工作:( @BalaKrishna 我已经编辑了答案。此外,ACCESS_GPS 已不再使用,因此您可以将其从清单文件中删除。【参考方案3】:

当我将“NETWORK_PROVIDER”替换为 “GPS_PROVIDER”

要解决此问题,请务必启用定位服务

记住文档:

如果提供程序当前被禁用,则返回 null。

作为一个选项,如果 GPS 被禁用,您可以同时使用这两个提供商,然后检查网络提供商:

...
 myLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
 if(myLocation == null) 
            myLocation = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
 

    if(myLocation != null) 
         //Get values for latitude and longitude!
    
...

【讨论】:

以上是关于Android 应用程序中的 GPS_PROVIDER 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Android 应用程序与 Android Studio 中的所有 6735 Android 设备兼容 [关闭]

如何检查由单独 Android 应用程序中的服务启动的 Android 应用程序是不是已完成加载?

android中的跨进程是啥意思

Android中的adb连接与多个系统

可以将渐进式 Web 应用程序注册为 Android 中的共享选项吗?

如何单击android应用程序中的特定元素?