我需要限制短信不要保存在收件箱中。它应该保存在一些用户给定的文件夹中。对于即时通讯使用波纹管代码。我可以限制短信通知。通过在我的接收器中使用this.abortBroadCast()..但是短信在收件箱中显示。 我需要限制它进入INBOX。它应该显示在其他文件夹中。
public class SmsReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//this stops notifications to others
this.abortBroadcast();
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
boolean checksomething =true ;
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
}
if(checksomething){
Toast.makeText(context, "Broad Cast Cancelled", Toast.LENGTH_SHORT).show();
}else{
this.clearAbortBroadcast();
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
}
}
答案 0 :(得分:1)
在清单上必须增加Intent的优先级,如下所示:
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="100">
<action android:name=
"android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
答案 1 :(得分:0)
如果您想限制其他应用程序存储的消息,您必须在nadroid.manif中设置您的应用程序的“优先级”...在这里 这种情况我阻止我自己的短信转到我的短信应用程序存储。
=============================================== ======================
SMSBROAD CAST RECEIVER CLASSS中的代码。
if(sender.equalsIgnoreCase("+923339736506"))
{
Toast.makeText(context, "you are not allowed ! ", Toast.LENGTH_SHORT).show();
this.abortBroadcast();
}
并在android.manifest中设置优先级,如下所示
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="100">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>