繁体   English   中英

当我一次向多个电话号码发送短信时,地址字段是否会存储多个电话号码?

[英]Will the address field store multiple phone numbers when I send a sms to multiple phone numbers at one time?

当我在Android手机上发送短信时,我可以选择多个联系人(请参阅A.png),短信将作为一个记录。

可以使用“content:// sms /”查询短信吗? 字段“地址”会返回多个电话号码吗?

谢谢!

A.png

在此输入图像描述

    public static List<String> ListDeleteOld(Context myContext, SMSRange mSMSRange, int beforeDays ) {
        List<String> mListSmsID=new ArrayList<String>();

        Uri uri=PublicParFun.GetUriBySMSRange(mSMSRange);

        Date beforeDate=getCurrentBefore(beforeDays);
        String[] projection = new String[] {"_id","address"};
        Cursor cur = myContext.getContentResolver().query(uri, projection, "date<=" + beforeDate.getTime(), null,  "date desc");


        while(cur.moveToNext()){           
            String s=cur.getString(cur.getColumnIndex("address"));           
        }
        cur.close();

        return mListSmsID;
    }



 public static Uri GetUriBySMSRange(SMSRange mSMSRange){
        Uri uri=null;

        final String SMS_URI_ALL = "content://sms/";
        final String SMS_URI_INBOX = "content://sms/inbox";
        final String SMS_URI_SEND = "content://sms/sent";
        final String SMS_URI_OUTBOX = "content://sms/outbox";
        final String SMS_URI_DRAFT = "content://sms/draft";

        switch (mSMSRange){
            case All:
                uri = Uri.parse(SMS_URI_ALL);
                break;

            case Inbox:
                uri = Uri.parse(SMS_URI_INBOX);
                break;

            case Sentbox:
                uri = Uri.parse(SMS_URI_SEND);
                break;

            case Outbox:
                uri = Uri.parse(SMS_URI_OUTBOX);
                break;

            case Draft:
                uri = Uri.parse(SMS_URI_DRAFT);
                break;
        }

        return uri;
    }

设置变量例如:

private static final Uri SMS_SENT_URI = Uri.parse("content://sms/sent");
private static final String SMS_ORDER = "date DESC";
private static final String ADDRESS_COLUMN_NAME = "address";
private static final String DATE_COLUMN_NAME = "date";
private static final String BODY_COLUMN_NAME = "body";
private static final String TYPE_COLUMN_NAME = "type";
private static final String ID_COLUMN_NAME = "_id";
private static final String SMS_PREFERENCES = "SMS_PREFERENCES";

你必须克里特SmsObject。 然后只需通过Cursor循环。

整个代码:(调用checkNewOutgoingSms(context))

 private void checkNewOutgoingSms(Context context) {

    Cursor smsCursor = getSmsCursor(context);
    List<Sms> smsList = getLastSmsList(smsCursor,context);
    if (smsList != null && smsList.size() > 0) {
        ProtectorWSODao mwtProtectorDao = new ProtectorWSODao();
        for (Sms sms : smsList) {
            //
            //
            //read sms content
            //
            //
        }
        Manager.getInstance(context).sendDataToServer(mwtProtectorDao);
    }
    smsCursor.close();
}

public static Cursor getSmsCursor(Context context) {
    return context.getContentResolver().query(SMS_SENT_URI, null, null, null, SMS_ORDER);
}

private List<Sms> getLastSmsList(Cursor smsCursor, Context context) {
    List<Sms> smsList = new ArrayList<Sms>();
    final int lastSmsIntercepted = smsStorage.getLastSmsIntercepted();
    boolean update = false;

    if (smsCursor != null) {
        if (smsCursor.moveToFirst()) {
            do {
                Sms smsParsed = parseSms(smsCursor, context);
                smsList.add(smsParsed);


            } while (smsCursor.moveToNext());
        }
    }
    return smsList;
}

public static Sms parseSms(Cursor cursor, Context context) {
    String number = cursor.getString(cursor.getColumnIndex(ADDRESS_COLUMN_NAME));
    String date = cursor.getString(cursor.getColumnIndex(DATE_COLUMN_NAME));
    String content = cursor.getString(cursor.getColumnIndex(BODY_COLUMN_NAME));
    int smsId = cursor.getInt(cursor.getColumnIndex(ID_COLUMN_NAME));

    return new Sms(Sms.SEND, smsId, number, date, content);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM