我正在尝试整合Google Analytics for Android。根据 documentation here ,它要求添加android.permission.WAKE_LOCK
(提供下面的评论说明)。我不清楚它。如果我只在Google Play Store发布应用程序,我还需要这个吗?
如果不是绝对必要,我真的不想要求用户获得额外的许可。
<!-- Optional permission for reliable local dispatching on non-Google Play devices -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
特别是,我不明白这个说明实际上意味着什么here:
可以选择使用WAKE_LOCK权限来改善非Google Play设备的调度。
答案 0 :(得分:39)
更新:从Android 6开始(API级别23,WAKE_LOCK被归类为&#34; normal&#34;权限,这意味着会自动授予权限。删除WAKE_LOCK权限通常会导致应用程序崩溃(见下文)所以我会避免这样做。
我处于同一个位置。我不想添加额外的权限,因为它会显着减少使用最新版本应用的人数(因为新权限意味着用户必须明确选择接收应用更新)。
我相信我已经设法通过结合this SO question上的一些答案找到了解决方案。
首先,添加&#34;工具&#34;应用程序清单的命名空间
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
其次,添加&#34; WAKE_LOCK&#34;权限,但使用删除选项
<uses-permission android:name="android.permission.WAKE_LOCK" tools:node="remove" />
现在,当我上传新的APK时,我可以看到不再需要该权限:
重要强>
似乎这种解决方案可能不再可行。我现在收到大量的RuntimeExceptions,其中包含消息&#34;用户10182和当前进程都没有android.permission.WAKE_LOCK。&#34;
Fatal Exception: java.lang.RuntimeException
Unable to start receiver com.google.android.gms.measurement.AppMeasurementReceiver: java.lang.SecurityException: Neither user 10182 nor current process has android.permission.WAKE_LOCK.
答案 1 :(得分:3)
删除WAKE_LOCK时,也请删除AnalyticsReceiver和AnalyticsService。
这种方式写在这个网站上。 http://coffeee.hatenablog.com/entry/2017/11/26/035828
祝你好运