如何读取来自多个发件人而不是 android 中所有发件人的收件箱中的所有短信?

How to read all SMS from inbox by more than one sender but not by all sender in android?

我有一个数组列表,其中包含一些联系电话,我想将该数组列表传递给地址。这样它将从数组列表中的选定数字中获取所有消息。 提前谢谢你。

  StringBuilder smsBuilder = new StringBuilder();
    final String SMS_URI_INBOX = "content://sms/inbox";
    final String SMS_URI_ALL = "content://sms/";

    Uri uri = Uri.parse(SMS_URI_INBOX);
    String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" };

    Cursor cur = getContentResolver().query(uri, projection, "address='"+list+"'" , null, "date desc");

    if (cur.moveToFirst())
    {
        int index_Address = cur.getColumnIndex("address");
        int index_Person = cur.getColumnIndex("person");
        int index_Body = cur.getColumnIndex("body");
        int index_Date = cur.getColumnIndex("date");
        int index_Type = cur.getColumnIndex("type");
        do
        {
            String strAddress = cur.getString(index_Address);
            int intPerson = cur.getInt(index_Person);
            String strbody = cur.getString(index_Body);
            long longDate = cur.getLong(index_Date);
            int int_Type = cur.getInt(index_Type);


            String str = "SMS From: " + cur.getString(index_Address) +
                    "\n" + cur.getString(index_Body) + "\n";
            arrayAdapter.add(str);

            smsBuilder.append("[ ");
            smsBuilder.append(strAddress + ", ");
            smsBuilder.append(intPerson + ", ");
            smsBuilder.append(strbody + ", ");
            smsBuilder.append(longDate + ", ");
            smsBuilder.append(int_Type);
            smsBuilder.append(" ]\n\n");
        } while (cur.moveToNext());

        if (!cur.isClosed())
        {
            cur.close();
            cur = null;
        }
    }
    else
    {
        smsBuilder.append("no result!");
    } // end if
}
       int argcount = MOBILENUMBER.size(); // number of IN arguments i.e More than one Mobile number for which you want read SMS

    //  String[] args = new String[]{ 1, 2 };
    StringBuilder inList = new StringBuilder(argcount * list.length);
    for (int i = 0; i < argcount; i++)
    {
        if(i > 0)
        {
            inList.append(",");
        }
        inList.append("?");//This will generate Number of "? " to match our item in array list
    }
    Cursor cur = getContentResolver().query(uri, projection, "address IN (" + inList.toString() + ")" , list, "date DESC ");