我正在编写处理SMS的应用程序,并且我计划应该替换库存/默认应用程序。
我正在拦截来自短信的android.provider.Telephony.SMS_RECEIVED
广播并发布我自己的通知,然后拨打abortBroadcast()
,所以最后没有通知新邮件会导致默认/股票应用
但问题实际上是当用户没有读取足够长的时间(如几分钟时间)时,传入的短信库存/默认应用会产生另一个广播 - 我怀疑只是检查是否有未读的短信。因此,用户会看到2个通知:一个来自默认/股票消息应用程序,另一个来自矿井,这很糟糕。
当找不到短信时我找不到哪个广播?
任何想法,提示?
答案 0 :(得分:-1)
您可以通过这种方式设置接收器的优先级,因此您知道它具有最高优先级并将执行onReceive()
方法:
<receiver android:name=".SmsReceiver" android:enabled="true"
android:exported="true" android:priority="999">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>