Android 10 - не работает запрос пользователя на изменение смс по умолчанию

Этот код работает до Android 10/Q. когда эта функция вызывается, она больше не появляется, как в старой версии до Android 10.

public static void promptDefaultHandler(Context context) {
    Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
    intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName());
   
    context.startActivity(intent);
}

В логарифме есть ошибка, мне непонятно, что не так.

2020-09-05 14:53:35.227 1818-2685/? W/PermissionPolicyService: действие удалено: запуск Intent {act=android.provider.Telephony.ACTION_CHANGE_DEFAULT cmp=com.google.android.permissioncontroller/com.android.packageinstaller.role.ui.RequestRoleActivity (имеет дополнительные функции)} из free.text. смс (uid=10338)

Любой совет, как это исправить?


person mboy    schedule 05.09.2020    source источник


Ответы (1)


Он работает с ролевым менеджером

RoleManager roleManager = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        roleManager = getApplicationContext().getSystemService(RoleManager.class);

        if (roleManager.isRoleAvailable(RoleManager.ROLE_SMS)) {
            if (roleManager.isRoleHeld(RoleManager.ROLE_SMS)) {
            } else {
                Intent roleRequestIntent = roleManager.createRequestRoleIntent(
                        RoleManager.ROLE_SMS);
                startActivityForResult(roleRequestIntent, 2);
            }
        }
    }

источник - https://stackoverflow.com/a/60372137/1114170

person mboy    schedule 06.09.2020