4

有没有人遇到过华为手机(例如8 Honor,Honor 7)上的位置监听器的问题。

我有一个实现位置监听器的后台服务,但对于华为手机,它在大约 5-6 次位置更新后停止工作。

我已在电话管理器中将我的应用程序添加为受保护的应用程序。

我不知道这些日志消息是否有助于找出问题所在:

HwLocationPowerTracker - 停止 namespace.my.app 位置

HwLauncher - Launcher.MotionManager stopMotionAppsReco 服务标志 402 不可用

HwLauncher - Launcher.MotionManager stopMotionAppsReco 服务标志 403 不可用

HwSystemManager - HsmIntentService:最后一项工作完成!让我们停止服务。

4

2 回答 2

1

问题的解决方案终于找到了。在清单文件中

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="My.App.Package"   
<application
android:process="My.App.Package">
</application>

package 和 android:process 必须相等(区分大小写)。

在请求唤醒锁定时,我还将“My.App.Tag”更改为“LocationManagerService”。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);           
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "LocationManagerService");

其他必要的设置是将应用程序添加为受保护的应用程序并保护它不被电池节省过程捕获。这可以在手机设置中完成。

于 2018-04-26T08:13:37.983 回答
0

我对Anders做了同样的事情,不同的是我没有将进程添加到androidManifest。

如果使用 FusedLocationProviderClient 更新位置,必须将 google play 服务加入电池优化白名单,并关闭自动管理(默认开启)。
启用 1.自动启动 2.允许后台,否则您将无法从 google play 服务获取位置信息

如此病态的代工,开发者的噩梦 - 中国移动

于 2020-03-04T07:34:11.503 回答