2015-07-02 5 views
12

जब मैं एंड्रॉइड मोबाइल फोन में एक एसएमएस भेजता हूं, तो मैं एकाधिक संपर्क चुन सकता हूं (कृपया ए.png देखें), और एसएमएस एक रिकॉर्ड के रूप में होगा।जब मैं एक समय में एकाधिक फोन नंबरों पर एसएमएस भेजता हूं तो पता फ़ील्ड एकाधिक फोन नंबर स्टोर करेगा?

क्या एसएमएस "सामग्री: // एसएमएस /" का उपयोग करके क्वेरी हो सकती है? क्या क्षेत्र "पता" कई फोन नंबर लौटाएगा?

धन्यवाद!

A.png उदाहरण के लिए

enter image description here

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; 
    } 
+0

अगर मैं understad, आप सभी पते पाने के लिए जहां विशेष रूप से एसएमएस भेजने था चाहते हैं? – 5er

+0

मेरे लिए कोई और विचार? – HelloCW

+0

हां, मुझे सभी संपर्क प्राप्त होने की उम्मीद है जब एक एसएमएस एकाधिक संपर्क – HelloCW

उत्तर

5

सेट चर:

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 किया है। फिर लूप ट्रफ कर्सर।

पूरे कोड: (फोन checkNewOutgoingSms (संदर्भ))

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); 
} 
+0

कि मुझे नहीं पता कि आपको इसे आजमा देना होगा। क्या आपने कोड चलाया? – 5er

संबंधित मुद्दे