Android - приложение для смс по умолчанию
Android 11 / api 30, Как можно назначить/запросить разрешение для того чтобы сделать приложение основным для смс?
Ответы (1 шт):
Автор решения: Barmaley
→ Ссылка
Надо сделать так:
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, myPackageName);
startActivity(intent);
Где myPackageName имя пакета вашего приложения для обработки SMS
При этом предполагается, что ваше приложение должно уметь минимум 4 вещи:
- Перехватывать (уметь обрабатывать) бродкаст при получении SMS:
action android:name="android.provider.Telephony.SMS_DELIVER" - Перехватывать (уметь обрабатывать) бродкаст при получении MMS:
action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" - Иметь
Intentобрабатывающий создание новых сообщений:action android:name="android.intent.action.SEND/SENDTO" - Иметь сервис для "быстрого" ответа, типа:
<service
android:name=".HeadlessSmsSendService"
android:exported="true"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</service>
Только при выполнении этих условий вы увидите при запуске Intent'а диалог подтверждения смены приложения для обработки SMS