Moto G上运行Android 4.3,Nexus 7 2012和Nexus 5上运行Android 4.4.2。使用的是Android Studio 0.4。
我不想接收定期位置更新,我只想在用户按下按钮时获得精确的位置。
我已经按照这个例子进行了操作:https://developer.android.com/training/location/retrieve-current.html
在清单文件中:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
我使用GooglePlayServicesUtil.isGooglePlayServicesAvailable检查Play服务是否可用。
在主活动中:
//in activity onCreate method
mLocationClient = new LocationClient(this, this, this);
@Override
protected void onStart() {
mLocationClient.connect();
super.onStart();
}
@Override
protected void onStop() {
mLocationClient.disconnect();
super.onStop();
}
//in button onclick method
mCurrentLocation = mLocationClient.getLastLocation();
我的手机没有SIM卡。如果我开启WiFi,有时候可以得到准确的位置信息。其他时候,mCurrentLocation为空。
如果我关闭WiFi,则mCurrentLocation始终为空。
我在外面测试了多个有天空视野的位置,每个位置等待了三分钟。
我从未看到GPS图标出现在Android通知栏顶部。
我的定位设置如下:
一个GPS测试应用程序成功地在同一设备上禁用WiFi室内使用GPS,因此GPS是正常工作的:
注册位置更新,如https://developer.android.com/training/location/receive-location-updates.html,也不起作用。注册方法从未被调用。
我做错了什么?