Android上的Unity GPS位置不经常更新

问题描述 投票:0回答:1

在团结应用程序中,我启动位置服务

Input.location.Start(0,0); //tried various other values and default

然后继续轮询它

Input.location.lastData

并检查时间戳与最后一个位置的时间戳,以查看更改。 Unity自动请求精确的位置访问,清单似乎很好。

问题是该位置很少更新。可以是多个公里的移动和新位置之间的分钟时间。如果我然后开始使用gps的谷歌地图导航,我的应用程序将非常频繁地获得新的gps位置,如预期的那样。

似乎Unity并没有真正开启gps,但除了开始,轮询和拥有适当的清单之外,我还没有看到我还能做些什么。

这个最小的例子显示了缓慢的更新。仅使用ui文本且运行此行为的应用程序将显示gps位置很少更新,除非某些其他应用程序(例如Google地图导航)使用gps。

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    public UnityEngine.UI.Text Info;
    void Start()
    {
        Input.location.Start(0.1f, 0.1f);
    }
    void Update()
    {
        Info.text = 
            Input.location.status.ToString() + System.Environment.NewLine +
            Input.location.lastData.timestamp.ToString();
    }
}
unity3d android-gps
1个回答
0
投票

作为参考,找到了解决方案,这是愚蠢的:用wifi关闭“改善”位置。

在谷歌位置准确性下方的设置/ locationaccess下,关闭“使用wifi使位置更准确”。

虽然在最小的移动之后我询问了准确的位置和更新,显然这个更准确的位置,补充了wifi,导致它不更新。

这是相当倒退,因为它显然意味着它只会使用wifi,当你允许它改善wifi的位置,而不是预期使用GPS和WiFi。

关闭此功能后,我会按预期频繁更新。

如果这是一个统一或与android的问题,这是不清楚的,但它肯定是一个问题,虽然是一个可修复的问题,只要你知道它。

© www.soinside.com 2019 - 2024. All rights reserved.