Android: SMS заблокировано приложением ChatON
Я написал приложение, которое получает входящие SMS-сообщения, сохраняет их и отображает пользователям. Внезапно мое приложение перестало получать SMS из-за обновления приложения Samsung ChatOn.
Вот мой Manifest.xml:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<receiver android:name="com.myapp.sms.service.SMSReceiver"
android:permission="android.permission.BROADCAST_SMS" android:exported="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
У меня была эта проблема ранее с Hangout, который начал поддерживать SMS. Итак, в то время я добавил приоритет 999 (максимальное значение) в файле манифеста. И это сработало.
Но после недавнего обновления приложения ChatOn мое приложение перестало получать SMS. Пожалуйста, скажите мне, как я могу преодолеть это.
Чтобы обойти эту проблему, я отключил опцию SMS в приложении ChatOn.
Любая помощь приветствуется.
1 ответ
Не существует гарантированного способа, которым ваше приложение может получить "первый взлом" в SMS-сообщениях на Android 4.3 и ниже. Даже если вы установите для своего приложения самый высокий приоритет, другие приложения могут делать то же самое. GoSMS, в частности, делает это, и вы указали, что ChatOn делает то же самое. Если они сначала получат сообщение и прервут трансляцию, вы не получите сообщение.
Вы ничего не можете сделать, кроме как обнаружить эту возможность (используя PackageManager
) и предупреждать пользователей о возможном поведении.
Обратите внимание, что в Android 4.4 это сильно отличается:
- Трансляция больше не может быть прервана
- Существуют отдельные широковещательные рассылки для приложений, которые отслеживают SMS и фактическое конечное приложение клиента SMS