問題描述
在 Moto G 上運行 Android 4.3,在 Nexus 7 2012 上運行 Android 4.4.2,在 Nexus 5 上運行 Android 4.4.2.Android Studio 0.4.
我不想定期接收位置更新,我只想在用戶按下按鈕時獲得準確的位置.
我遵循了這個例子:,也不起作用.從未調用注冊的方法.
我做錯了什么?
我解決了.問題是讓 Google 應用訪問您的位置"已關閉:
當我打開它時,我得到 GPS 讀數,當它關閉時,我沒有.
我放棄了它有兩個原因:
我正在開發一個可用于公司大量設備的應用,并且我希望最少的手動配置是必要的
屏幕清楚地顯示此設置僅影響 Google 應用".我知道 Play Services 是 Google 軟件,但我認為 Google 不會期望最終用戶理解這一點.
然后我得到了 Android 4.4.2 更新,并且位置設置頁面發生了變化.看來我可以關閉 Google 位置報告,但仍然可以從融合位置提供者那里獲得 GPS 讀數:
所以也許 Google 意識到該設置令人困惑并對其進行了改進.不管怎樣,如果我幾天前有 4.4.2,我會節省很多時間.
Android 4.3 on Moto G, Android 4.4.2 on Nexus 7 2012, Android 4.4.2 on Nexus 5. Android Studio 0.4.
I don't want to receive regular location updates, I just want an accurate location when the user presses a button.
I have followed this example: https://developer.android.com/training/location/retrieve-current.html
In manifest file:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
I check that Play Services are available using GooglePlayServicesUtil.isGooglePlayServicesAvailable
In main activity:
//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();
I have no SIM card. If I enable Wifi then sometimes I get an accurate location. Other times mCurrentLocation is null.
If I disable Wifi then mCurrentLocation is always null.
I am testing outside in several locations always with a clear view of the sky. I waited three minutes in each location.
I never see the GPS icon appear on the Android notification bar at the top of the screen.
I have these location settings:
A GPS Test app manages to use GPS successfully indoors on the same device with Wi-Fi disabled so GPS is working:
Registering for location updates, as at https://developer.android.com/training/location/receive-location-updates.html, doesn't work either. Registered method never called.
What am I doing wrong?
I solved it. The problem was that "Let Google apps access your location" was turned off:
When I turn it on I get GPS readings and when it's off I don't.
I had left it off for two reasons:
I'm developing an app to be used to lots of devices at a company and I want minimum manual configuration to be necessary
The screen says clearly "This setting affects Google apps only." I know that Play Services is Google software but I didn't think Google would expect an end user to understand that.
Then I got the Android 4.4.2 update and the location settings page has changed. It appears that I can have Google Location Reporting turned off and still get GPS readings from the fused location provider:
So maybe Google realised that the setting was confusing and improved it. Either way, I'd have saved a lot of time if I'd got 4.4.2 a few days ago.
這篇關于融合的位置提供者似乎沒有使用 GPS 接收器的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!