2013-01-18 40 views
1

我想將收件箱中的所有郵件存儲到SD卡中,稍後檢索並將其恢復到收件箱中。我已成功地對郵件進行備份並將其存儲到SD卡,但無法找出如何檢索它們和retore到Inbox.This是我使用採取短信的備份代碼:如何從sdcard恢復短信至收件箱?

private void backupSMS() 
    { 
     smsBuffer.clear(); 
     Uri mSmsinboxQueryUri = Uri.parse("content://sms"); 
     Cursor cursor1 = getContentResolver().query(
       mSmsinboxQueryUri, 
       new String[] { "_id", "thread_id", "address", "person", "date", 
         "body", "type" }, null, null, null); 
     //startManagingCursor(cursor1); 
     String[] columns = new String[] { "_id", "thread_id", "address", "person", "date", "body", 
       "type" }; 
     if (cursor1.getCount() > 0) 
     { 
      String count = Integer.toString(cursor1.getCount()); 
      Log.d("Count",count); 
      while (cursor1.moveToNext()) 
      { 
       String messageId = cursor1.getString(cursor1 
         .getColumnIndex(columns[0])); 

       String threadId = cursor1.getString(cursor1 
         .getColumnIndex(columns[1])); 

       String address = cursor1.getString(cursor1 
         .getColumnIndex(columns[2])); 
       String name = cursor1.getString(cursor1 
         .getColumnIndex(columns[3])); 
       String date = cursor1.getString(cursor1 
         .getColumnIndex(columns[4])); 
       String msg = cursor1.getString(cursor1 
         .getColumnIndex(columns[5])); 
       String type = cursor1.getString(cursor1 
         .getColumnIndex(columns[6])); 



       smsBuffer.add(messageId + ","+ threadId+ ","+ address + "," + name + "," + date + " ," + msg + " ," 
         + type); 
      }   
      generateCSVFileForSMS(smsBuffer); 
     }    
    } 

    private void generateCSVFileForSMS(ArrayList<String> list) 
    { 

     try 
     { 
      String storage_path = Environment.getExternalStorageDirectory().toString() + File.separator + "Velosys"+".csv"; 
      FileWriter write = new FileWriter(storage_path); 

      write.append("messageId, threadId, Address, Name, Date, msg, type"); 
      write.append('\n'); 

      for (String s : list) 
      { 
       write.append(s); 
       write.append('\n'); 
      } 
      write.flush(); 
      write.close(); 
     } 

     catch (NullPointerException e) 
     { 
      System.out.println("Nullpointer Exception "+e); 
       // e.printStackTrace(); 
      } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 

我搜索了很多,但沒能找到一種方法,從SdCard.Please幫助.csv文件恢復短信我提前感謝。

回答

1

不用查詢數據庫,而是使用插入bulkInsert插入行。我相信您需要向清單中的數據庫請求寫入權限。

+0

我正在尋找如何閱讀.csv文件內容的方式,然後將內容放到短信收件箱中。我想你誤解了這個問題。 – user1726619