web-dev-qa-db-ja.com

ユーザーにデフォルトのアプリにするオプションをユーザーに提供して、デバイスのアプリケーションをデフォルトの電話またはアシスタントハンドラーにする方法

以下のように、playStoreからポリシー通知を受け取りました。

アプリのマニフェストがCall Log権限グループを要求します(例:READ_CALL_LOG、WRITE_CALL_LOG、PROCESS_OUTGOING_CALLS)
デバイスのデフォルトの電話またはアシスタントハンドラーとしてアクティブに登録されている必要があります。

デバイスのアシスタントハンドラを理解できません。ご意見やご提案は大歓迎です。

Androidアプリケーションが要件を満たすための最小要件は何ですか?.

25
Wasim

次のドキュメントを確認してください 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);
3
marmor

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>
0
Omar Boshra

プログラムでデフォルトにすることはできません。重要なのは、ユーザーがデフォルトを選択できるようになることです。そのため、テキストと通話を取得するアプリを選択できます。 rootでそれができるかもしれませんが、それ以外は何もできません。

0
Gabe Sechan

ちなみに、アプリケーションが電話ハンドラではないが、機能するために必要な場合は、免除を受けることができます(記事の最後の段落を参照): https://support.google。 com/googleplay/Android-developer/answer/9047303?hl = ja アプリは電話ハンドラにはなりませんが、引き続きこれらの権限を取得できます。

0
Mara