以下のように、playStoreからポリシー通知を受け取りました。
アプリのマニフェストがCall Log権限グループを要求します(例:READ_CALL_LOG、WRITE_CALL_LOG、PROCESS_OUTGOING_CALLS)
デバイスのデフォルトの電話またはアシスタントハンドラーとしてアクティブに登録されている必要があります。
デバイスのアシスタントハンドラを理解できません。ご意見やご提案は大歓迎です。
Androidアプリケーションが要件を満たすための最小要件は何ですか?.
次のドキュメントを確認してください https://developer.Android.com/reference/Android/telecom/TelecomManager#ACTION_CHANGE_DEFAULT_DIALER
サンプルコード:
Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER);
intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getActivity().getPackageName());
startActivity(intent);
Android 10 Qの状態に関する更新されたドキュメントをマーマーが述べたことに加えて、-
これはQ以降サポートされていません。代わりに
RoleManager.createRequestRoleIntent(String)
をRoleManager.ROLE_DIALER
とともに使用してください。
マニフェストファイルの意図したフィルターに関するfreezo9の回答に従っているときに、コードは実際に機能しました:- https://stackoverflow.com/a/55716209/7552894
これらを追加:-
<intent-filter>
<action Android:name="Android.intent.action.VIEW"/>
<action Android:name="Android.intent.action.DIAL"/>
<category Android:name="Android.intent.category.DEFAULT"/>
<category Android:name="Android.intent.category.BROWSABLE"/>
<data Android:scheme="tel"/>
</intent-filter>
<intent-filter>
<action Android:name="Android.intent.action.DIAL"/>
<category Android:name="Android.intent.category.DEFAULT"/>
</intent-filter>
プログラムでデフォルトにすることはできません。重要なのは、ユーザーがデフォルトを選択できるようになることです。そのため、テキストと通話を取得するアプリを選択できます。 rootでそれができるかもしれませんが、それ以外は何もできません。
ちなみに、アプリケーションが電話ハンドラではないが、機能するために必要な場合は、免除を受けることができます(記事の最後の段落を参照): https://support.google。 com/googleplay/Android-developer/answer/9047303?hl = ja アプリは電話ハンドラにはなりませんが、引き続きこれらの権限を取得できます。