融合的位置提供者似乎没有使用 GPS 接收器

Fused location provider doesn#39;t seem to use GPS receiver(融合的位置提供者似乎没有使用 GPS 接收器)
本文介绍了融合的位置提供者似乎没有使用 GPS 接收器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

在 Moto G 上运行 Android 4.3,在 Nexus 7 2012 上运行 Android 4.4.2,在 Nexus 5 上运行 Android 4.4.2.Android Studio 0.4.

我不想定期接收位置更新,我只想在用户按下按钮时获得准确的位置.

我遵循了这个例子:,也不起作用.从未调用注册的方法.

我做错了什么?

解决方案

我解决了.问题是让 Google 应用访问您的位置"已关闭:

当我打开它时,我得到 GPS 读数,当它关闭时,我没有.

我放弃了它有两个原因:

  1. 我正在开发一个可用于公司大量设备的应用,并且我希望最少的手动配置是必要的

  2. 屏幕清楚地显示此设置仅影响 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:

  1. I'm developing an app to be used to lots of devices at a company and I want minimum manual configuration to be necessary

  2. 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 接收器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How can I use CClistview in COCOS2d Android?(如何在 COCOS2d Android 中使用 CClistview?)
cocos2d-android: how to display score(cocos2d-android:如何显示分数)
Sqlite database not copied from asset folder Android(Sqlite 数据库未从资产文件夹 Android 复制)
SQLite Database Copy Appears Corrupted When Generated by Device and not Emulator(SQLite 数据库副本在由设备而不是模拟器生成时出现损坏)
Android file copy(安卓文件拷贝)
Android how to detect Copy event of Edittext in android(Android如何在android中检测Edittext的Copy事件)