2017-07-05 5 views
0

J'essaye de vider des sms au dossier de texte mais il lit seulement les messages courants du mois à partir de la date 1 jusqu'à la date actuelle. Comment puis-je lire tous les sms sans configurer l'application par défaut ou quelque chose comme ça?Lecture sms montre seulement le mois en cours sms

public List<Sms> getAllSms() { 
    List<Sms> lstSms = new ArrayList<Sms>(); 
    Sms objSms = new Sms(); 
    Uri message = Uri.parse("content://sms/"); 
    ContentResolver cr = this.getContentResolver(); 

    Cursor c = cr.query(message, null, null, null, null); 
    this.startManagingCursor(c); 
    int totalSMS = c.getCount(); 

    if (c.moveToFirst()) { 
     for (int i = 0; i < totalSMS; i++) { 

      objSms = new Sms(); 
      objSms.setId(c.getString(c.getColumnIndexOrThrow("_id"))); 
      objSms.setAddress(c.getString(c 
              .getColumnIndexOrThrow("address"))); 
      objSms.setMsg(c.getString(c.getColumnIndexOrThrow("body"))); 
      objSms.setReadState(c.getString(c.getColumnIndex("read"))); 
      String date = c.getString(c.getColumnIndexOrThrow("date")); 
      Long timestamp = Long.parseLong(date);  
      Calendar calendar = Calendar.getInstance(); 
      calendar.setTimeInMillis(timestamp); 
      Date finaldate = calendar.getTime(); 
      objSms.setTime(finaldate.toString()); 
      if (c.getString(c.getColumnIndexOrThrow("type")).contains("1")) { 
       objSms.setFolderName("inbox"); 
      } else { 
       objSms.setFolderName("sent"); 
      } 

      lstSms.add(objSms); 
      c.moveToNext(); 
     } 
    } 
    // else { 
    // throw new RuntimeException("You have no SMS"); 
    // } 
    c.close(); 

    return lstSms; 
} 

Répondre

0

lecture boîte de réception et envoyé mon problème résolu séparement