批准在 Android 上使用后台位置?

如何解决批准在 Android 上使用后台位置?

我用 Qt 开发了一个 Android 应用程序。前段时间我收到一封来自 Play 商店的电子邮件后台位置批准”。我不熟悉 Java,也不明白这个问题。 我的应用仅在应用可见(在前台)时使用 GPS,在不可见(后台)时不使用 GPS。

我的 Manifest.xml 看起来像这样:

<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.vending.BILLING"/>

现在我在 Play 商店找到了

...the ACCESS_BACKGROUND_LOCATION permission only affects an app's access to location when it runs in the background.

对我来说,这意味着因为我不使用 ACCESS_BACKGROUND_LOCATION,所以我的应用程序仅在可见(前景)时才使用 GPS。那么问题是什么?谢谢...

解决方法

我遇到了非常相似的问题。我仔细检查了我的 AndroidManifest.xml,里面没有 ACCESS_BACKGROUND_LOCATION

我使用 C++ 中的 QGeoPositionInfoSource 来获取定期位置更新。我从来没有调用过 stopUpdates() 函数,它必须被修复。它必须在应用进入后台时调用,例如:onPause

这是一个非常有用的带有线索的视频,以及一些其他有用的阅读材料:

有一个信号 QGuiApplication::applicationStateChanged 可以用于此,示例代码:

if (const auto *const gui =
        qobject_cast<const QGuiApplication *const>(qApp)) {
  connect(gui,&QGuiApplication::applicationStateChanged,this,[&](Qt::ApplicationState state) {
            switch (state) {
            case Qt::ApplicationState::ApplicationActive:
              source->startUpdates();
              break;
            default:
              source->stopUpdates();
            }
          });
}

sourceQGeoPositionInfoSource 的指针。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?