Диалоговое окно приложения SMS по умолчанию для Android 10 не отображается

Я успешно изменил свое приложение для использования в качестве приложения для смс по умолчанию. Проблема заключается в диалоговом окне, которое должно предлагать пользователю установить мое приложение по умолчанию. Кажется, он работает на более старых версиях, но не на эмуляторе Android 10.

Мой код:

fun Activity.askToBeDefaultSMSApp() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        val intent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
        intent.putExtra(
            Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
            packageName
        )
        startActivityForResult(intent, DEFAULT_SMS_APP_PERMISSION_REQUEST)
    }
}

Я получаю ответ onActivityResult, в котором говорится, что разрешение предоставлено, но если я позвоню:

Telephony.Sms.getDefaultSmsPackage(this)

Я все еще вижу приложение google sms по умолчанию.

Что может быть не так?


person SMGhost    schedule 01.01.2020    source источник


Ответы (1)


Для андроид 10 используем RollManger

if (getDefaultSmsPackage(mContext) != null && !getDefaultSmsPackage(mContext).equals(mContext.getPackageName())) {
RoleManager roleManager = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
roleManager = mContext.getSystemService(RoleManager.class);

if (roleManager.isRoleAvailable(RoleManager.ROLE_SMS)) {
if (roleManager.isRoleHeld(RoleManager.ROLE_SMS)) {
Log.d("role", "role");
} else {
Intent roleRequestIntent = roleManager.createRequestRoleIntent(
RoleManager.ROLE_SMS);
((Activity) mContext).startActivityForResult(roleRequestIntent, MESSAGE_CODE);
}
}
}
else {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
mContext.getPackageName());
((Activity) mContext).startActivityForResult(intent, MESSAGE_CODE);
}



}
person nitinkumarveridic    schedule 24.02.2020
comment
Какие разрешения нужно добавить? - person Nithis Kumar; 24.06.2020
comment
Как мы можем отменить это разрешение? - person Sagar Maiyad; 09.11.2020