Android用のGoogleAnalyticsを統合しようとしています。 ここのドキュメントに従って、Android.permission.WAKE_LOCK
を追加するように求められます(以下のコメントノートを提供します)。はっきりわかりません。 Google Playストア でのみアプリをリリースする場合でも、これは必要ですか?
これが絶対に必要でない場合、私は本当にユーザーに追加の許可を求めたくありません。
<!-- Optional permission for reliable local dispatching on non-Google Play devices -->
<uses-permission Android:name="Android.permission.WAKE_LOCK" />
特に、このメモが実際に何を意味するのかわかりません ここ :
オプションで、WAKE_LOCK権限をリクエストして、GooglePlay以外のデバイスでのディスパッチを改善できます。
PowerManager WakeLocksを使用して、プロセッサがスリープしたり画面が暗くなったりしないようにします。
Google Playデバイスでは、ほとんどの場合、バックグラウンドサービスは「GooglePlay開発者サービス」として実行されているため、WAKE_LOCK
は必要ありません。
Google Play以外のデバイスでは、WAKE_LOCK
を使用すると、Googleアナリティクスのディスパッチプロセス/サービスを維持できるため、データをレポート/アップロードする機会が増えます。
[〜#〜]編集[〜#〜]
また、
SYSTEM_TOOLS
など、ユーザーが設定を介して制御できるものではないアクセス許可グループの危険なアクセス許可がどうなるかは不明です。
https://commonsware.com/blog/2015/06/02/random-musings-m-developer-preview-bad.html
更新:Android 6(APIレベル23、WAKE_LOCKは " normal "パーミッションとして分類されます。つまり、パーミッションは自動的に付与されます。WAKE_LOCK権限を削除すると、アプリがクラッシュすることがよくあるため(以下を参照)、それを回避します。
私は同じ立場にいます。アプリの最新バージョンを使用するユーザーの数が大幅に減少するため、追加の権限を追加したくありません(新しい権限は、ユーザーがアプリの更新を受け取るために明示的にオプトインする必要があることを意味します)。
this SO question )のいくつかの答えを組み合わせることで、解決策を見つけることができたと思います。
まず、アプリのマニフェストに「tools」名前空間を追加します
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools">
次に、「WAKE_LOCK」権限を追加しますが、削除オプションを使用します
<uses-permission Android:name="Android.permission.WAKE_LOCK" tools:node="remove" />
これで、新しいAPKをアップロードすると、権限が不要になっていることがわかります。
重要
この解決策はもはや実行可能ではないようです。 「ユーザー10182も現在のプロセスにもAndroid.permission.WAKE_LOCKがありません」というメッセージとともに、膨大な数のRuntimeExceptionsがスローされています。
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.
WAKE_LOCKを削除するときは、AnalyticsReceiverとAnalyticsServiceも削除してください。
そのようにこのサイトに書かれています。 http://coffeee.hatenablog.com/entry/2017/11/26/035828
幸運を