当手机被锁定或应用程序关闭时,如何使用Android 9 Unity应用程序收集精确且近乎连续的位置数据



我正在Unity中编写一个简单的距离跟踪应用程序(因为我比正常的Android开发环境更熟悉它,而且该应用程序是供个人使用的(,我的问题是,当手机被锁定或(可能(应用程序关闭时,数据不会被收集。

该应用程序的工作方式是,它使用Unity的定位服务界面每隔几米查询一次位置,并在跑步结束后将其添加到总距离中。

该应用程序旨在在安卓9上运行,它必须精确测量至少1-2小时的距离。因此,我需要电池至少能使用那么长时间,尤其是当蓝牙服务(如音乐或手表心率同步(与电池同时运行时

我在安卓系统开发方面的经验很低;几乎不存在。我意识到我需要某种后台流程,但我不确定哪一个,哪一个与Unity内置的定位服务API或一般的Unity最有效。

到目前为止,我的研究告诉,事实上,这个过程应该是一个前台过程,因为较新版本的Android限制后台服务仅每隔几个小时查询一次位置。进一步的研究表明,我应该与工作经理合作,尽管我仍然不确定这是否正确。每隔一秒左右测量位置是否被认为是可延迟的?

也许我应该使用IntentService?我很困惑。

用于此目的的合适且最新的服务是什么?

提高电池寿命和后台工作的正确方法是制作Android服务。

您可以从您的unity应用程序启动此服务,并开始收集数据。当你返回或重新打开你的统一应用程序时,你会联系服务并从中收集所有数据。

你有一个项目可以在Android服务上提供帮助,这里有一个帖子可能也会对你有所帮助。

关于Android服务,您可以使用bindservice类型将您的统一绑定到服务,并在关闭应用程序时自动销毁它。

由于位置刷新次数有限,您需要使用谷歌FLP并调用LocationRequest。

在LocationRequest中,您将更新优先级设置为setPriority(int(设置为priority_HIGH_ACCURACY,并将更新间隔设置为setInterval(long((以秒为单位(

最新更新