我希望在收到广播接收器后删除{{1}}。我读了其他帖子,他们说我们可以用SMS
来做,但它对我不起作用。
abortBroadcast();
我在用@Override
public void onReceive(Context context, Intent intent) {
//###
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage message =SmsMessage.createFromPdu((byte[]) pdus[0]);
//###
Num = message.getDisplayOriginatingAddress();
Matn = message.getDisplayMessageBody();
//###
for (int i = 0 ; i < myDbHelper.getBlockNumber().size() ; i++) {
//###
String a1 = myDbHelper.getBlockNumber().get(i);
String a2 = "98"+myDbHelper.getBlockNumber().get(i);
String a3 = "+98"+myDbHelper.getBlockNumber().get(i);
String a4 = "0098"+myDbHelper.getBlockNumber().get(i);
String a5 = "0"+myDbHelper.getBlockNumber().get(i);
String a6 = myDbHelper.getBlockName().get(i);
String b = myDbHelper.getBlockNumber().get(i).substring(1,myDbHelper.getBlockNumber().get(i).length());
String b1 = "98"+b;
String b2 = "+98"+b;
String b3 = "0098"+b;
String b4 = "0"+b;
//###
if (Num.equals(a1)||Num.equals(a2)||Num.equals(a3)||Num.equals(a4)||Num.equals(a5)||Num.equals(a6)||Num.equals(b)||Num.equals(b1)||Num.equals(b2)||Num.equals(b3)||Num.equals(b4)){
Toast.makeText(context.getApplicationContext(),"it's Block",Toast.LENGTH_SHORT).show();
break;
}
}
//###
}
加sp的地方写了abortBroadcast();
,但它没有用。而且它
Android Manifest:
//###
首先收到<receiver android:name=".SMSReceiverBlock"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="999999999">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
时,它显示了一个祝酒词(在我的代码中)。现在当我将我的应用设置为默认的sms
应用时,但它并没有显示任何祝酒。这意味着它无法读取我的接收器。