我想在我的应用程序中接收短信,但我不希望我的 Android 显示有关该事件的通知。
我是声明
<receiver android:name="mypackage.SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
写代码
public class SMSReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Bundle extras = intent.getExtras();
Object[] pdus = (Object[])extras.get("pdus");
for (Object pdu: pdus)
{
SmsMessage msg = SmsMessage.createFromPdu((byte[])pdu);
String origin = msg.getOriginatingAddress();
String body = msg.getMessageBody();
// Parse the SMS body
if (isMySpecialSMS)
{
// Stop it being passed to the main Messaging inbox
abortBroadcast();
}
}
}
}
并尝试设置优先级
<intent-filter android:priority="100">
但是不行!手机显示通知!
拥有 Android 4.4.2 (API 19) (Samsung Note 3)
最佳答案
从 KitKat (4.4) 开始,您的应用需要成为默认的 SMS 应用才能抑制通知,因为默认应用负责发出通知。尝试中止 SMS_RECEIVED
广播不再有效。系统会忽略任何中止该广播的尝试。此外,默认应用会监听 SMS_DELIVER
广播,该广播也无法中止,因为它仅传送给默认应用。您可以引用以下链接,了解有关使您的应用有资格成为默认 SMS 应用的信息。
关于android - 短信接收没有通知android 4.4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26075807/