При каких обстоятельствах Android требует вмешательства пользователя для отправки SMS?

Я разрабатываю приложение, которое будет отправлять очень нечастые SMS-сообщения из службы переднего плана. Очень редко мы говорим максимум несколько раз в год, если сам пользователь не злоупотребляет приложением.

На днях я протестировал его на реальном устройстве, и в нем появилось диалоговое окно, в котором говорилось что-то вроде

AppName is trying to send an SMS. 
   Do you want to allow this? 

     Accept         Decline

[ ] Never ask again

Я не помню точную формулировку, и мне не удалось ее воспроизвести. Я бы не стал на этом ругаться, но я почти уверен, что это было на устройстве под управлением Android 4.4.4.

Это была первая попытка приложения отправить SMS на этом устройстве, поэтому я не думаю, что это связано с SmsUsageMonitor.isUnderLimit (). Существуют ли другие проверки безопасности и еще много чего, что применимо к отправке SMS из службы переднего плана (включая все версии Android, а не только 4.4.4)?

SmsUsageMonitor, похоже, выполняет некоторую проверку на «премиальные» номера и, возможно, может потребовать некоторой формы согласия пользователя в случае, если приложение пытается отправить сообщение на такой номер. Если это так, есть ли способ «предварительно одобрить» отправку моего приложения на любой номер, включая премиум - однажды и на всегда? Или может потребоваться ручное одобрение пользователя через некоторое время в будущем, если, например, будет использоваться новый номер получателя (который может быть премиальным номером)?

0
0
48
1

Ответы 1

Кажется, я смог воспроизвести это после изменения имени пакета приложения (удаление не помогло). Это действительно связано с премиальным номером - или, скорее, с тем, что SmsUsageMonitor считает премиальным номером.

Мне в Швеции кажется, что номера с 5 или менее цифр и не являются номерами служб экстренной помощи (например, 112) считаются номерами премиум-класса. Это в некоторой степени подкреплено Википедия по коротким кодам

Sweden

Codes are five digits in length.

Это всплывающий диалог. После установки флажка «Запомнить мой выбор» и нажатия кнопки «Отправить» диалоговое окно больше не появляется. Этот параметр можно изменить в Информация о приложении, где есть параметр Отправить Премиум SMS.

Screenshot from Android 4.4.4

Другие вопросы по теме