2012-10-21 41 views
2

我创建了一个Android应用程序来检索位置。我试图使用GPS_PROVIDER,它返回null ..但工作顺利,当我使用NETWORK_PROVIDER ..任何一个可以帮助我解决这个问题?Android应用程序中的GPS_PROVIDER错误

下面是代码

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

位置变成空当我更换由"GPS_PROVIDER""NETWORK_PROVIDER" ..

我已经在清单

<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"/> 
+0

你的清单文件是什么样子的? – smk

+0

我已经在清单 加入下列三种权限<使用的许可机器人:名称=“android.permission.ACCESS_COARSE_LOCATION” /> <使用的许可机器人:名称=“android.permission.ACCESS_FINE_LOCATION” /> <用途-permission android:name =“android.permission.ACCESS_MOCK_LOCATION”/> – humandroid

+0

您的设备必须通过WiFi连接,这就是为什么它可以与NETWORK_PROVIDER – Lucifer

回答

2

可能有两个原因,为什么你的GPS位置是空

  1. 可能是你的GPS没有激活。尝试从setting menu => Location & Security => Check Use GPS Satellites激活您的GPS。
  2. 可能是您目前正在GPS无法工作的建筑物中。从大楼出来检查它。这可能会发生在大多数时间。
+0

+1是的,与你同意,请显示完整设置第一个选项的路径,对于像OP这样的新用户会很有用。:) – Lucifer

0

增加了以下三个权限按documentation

如果供应商当前被禁用,返回null。

确保您的GPS在设备上处于活动状态,因此您不会收到空。

编辑:
也可以尝试运行requestLocationUpdates()GPS_PROVIDER或可能两次,NETWORK_PROVIDER为好。 LocationManager以最快的方式检索位置,并停止搜索。由于GPS位置的检索速度比网络位置慢,因此如果发现GPS位置返回null,则会立即停止。

+0

但我工作顺利,当我使用NETWORK_PROVIDER。 – Lucifer

+0

NETWORK_PROVIDER未链接到GPS。 – slybloty

+0

GPS已启用,并在我的建筑物内正常工作..我已添加。仍然不工作:( – humandroid