Android P の新しい権限グループにより、アプリがいつ通話履歴や電話番号を読み取りたいのかが明確になり、アプリが何をしているのかを正確に知ることができます。
Android 開発者プレビュー 3 (Android P ベータ 2) ちょうど落ちたそれに伴い、多くの変更が加えられていますが、そのほとんどが内部的なものです。 ユーザー向けの変更がいくつかありますが、ほぼすべての変更は最終リリースの準備中です。 アップデートの最大の部分は最終的な API です。つまり、API 28、Android P をターゲットとしたアプリケーションを構築できるようになります。 Developer Preview 3 では、新しい権限グループが追加されました。 この権限グループは、特に Android の通話ログに関係します。つまり、アプリケーションが通話ログを読み取ろうとするとき、 または電話番号を使用すると、アプリにどのような種類のアクセスを許可しているかを正確に伝える、ユーザー向けの目立つメッセージが表示されます。
まず、これらは、新しい CALL_LOG 権限グループの権限が要求されたときにユーザーに表示される新しい文字列です。
<stringname="permgroupdesc_calllog">read and write phone call logstring>
<stringname="permgrouprequest_calllog">Allow <b>%1$s</b> to access your phone call logs?string>
これは既存のアプリケーションにどのような影響を与えるのでしょうか? Android は、「危険」とマークされた権限の権限グループを使用して、アプリケーションに付与されるアクセス レベルを管理し、ユーザーに表示するメッセージを選択します。 以前は、READ_CALL_LOG およびその他の通話ログ関連の権限は、一般的な「デバイスの電話機能へのアクセス」ダイアログの一部として表示されていましたが、そのメッセージは非常に曖昧でした。 それだけでなく、デバイスの通話記録とは無関係であると主張することもできます。 Android P Developer Preview 3 では、すべての通話ログ関連の権限が新しいグループに再グループ化されました。 アプリケーションがリクエストしたときにより適切なメッセージが表示されるように、CALL_LOG を適切に呼び出します。 それ。
アプリケーションは、CALL_LOG、READ_CALL_LOG、WRITE_CALL_LOG、または PROCESS_OUTGOING_CALLS 権限を明示的にリクエストする必要があります。 Android P 開発者プレビュー ドキュメントによると、通話ログにアクセスする必要がある場合、または発信通話を処理する必要がある場合は、CALL_LOG グループが必要です。 また、開発者は、ユーザーがアプリの通話ログ情報へのアクセスを拒否するタイミングを考慮する必要があります。
以下の逆コンパイルされた Android フレームワークから取得された新しい権限グループを確認することもできます。
<permission-groupandroid: description="@string/permgroupdesc_calllog"android: icon="@drawable/perm_group_phone_calls"android: label="@string/permgrouplab_calllog"android: name="android.permission-group.CALL_LOG"android: priority="450"android: request="@string/permgrouprequest_calllog"/>
<permissionandroid: description="@string/permdesc_accessImsCallService"android: label="@string/permlab_accessImsCallService"android: name="android.permission.ACCESS_IMS_CALL_SERVICE"android: protectionLevel="privileged|signature"/>
<permissionandroid: description="@string/permdesc_readCallLog"android: label="@string/permlab_readCallLog"android: name="android.permission.READ_CALL_LOG"android: permissionGroup="android.permission-group.CALL_LOG"android: protectionLevel="dangerous"/>
<permissionandroid: description="@string/permdesc_writeCallLog"android: label="@string/permlab_writeCallLog"android: name="android.permission.WRITE_CALL_LOG"android: permissionGroup="android.permission-group.CALL_LOG"android: protectionLevel="dangerous"/>
<permissionandroid: description="@string/permdesc_processOutgoingCalls"android: label="@string/permlab_processOutgoingCalls"android: name="android.permission.PROCESS_OUTGOING_CALLS"android: permissionGroup="android.permission-group.CALL_LOG"android: protectionLevel="dangerous"/>
出典: Android P 開発者ドキュメント