0

在android中是否可以从android中的特定号码中过滤短信。并将其保存在特定的数据库中。短信不应该在收件箱中可见......

4

2 回答 2

2

雅是可能的。

在 mainfest 文件中添加以下代码:

<receiver android:name="com.example.Sms_BReceiver" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>
</application>

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />

之后创建一个类使用以下代码

     public class Sms_BReceiver extends BroadcastReceiver {

    @Override
        public void onReceive(Context context, Intent intent) {
         Bundle bundle = intent.getExtras();
         SmsMessage[] messageString = null;

        Object[] pdus = (Object[]) bundle.get("pdus");
        messageString = new SmsMessage[pdus.length];
                    for (i = 0; i < messageString.length; i++) {
          messageString[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    }

        Phone_no = messageString[0].getOriginatingAddress();
        Message_body = messageString[0].getMessageBody();
        Time = messageString[0].getTimestampMillis();

        CharSequence text = str;
        Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
    }


    if (Phone_no.contains(here check no to filter) {
             here delete message form inbox 
             and save in our own db 

    } else  {

    }


 }

我希望这段代码对你有用

于 2013-04-02T09:55:10.490 回答
2

您必须分 3 步执行此操作:

  1. 从特定号码读取短信,您必须查看此链接,然后
  2. 您必须创建数据库以存储有关 SMS 的所有信息(如 ID、正文、号码、时间),以便检查此链接
  3. 您必须从收件箱中删除短信检查此链接以删除短信。

添加以下权限以执行所有步骤:

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
于 2013-04-02T10:02:52.487 回答