如何从消息文件导入到android

问题描述:

我正在开发一个应用程序,它备份了android文本消息,我能够将文本消息保存在xml文件中,现在我想将这个文件消息导回到android。 我don'nt知道如何做到这一点, 任何帮助将非常感激如何从消息文件导入到android

+0

请阅读这里:http ://stackoverflow.com/questions/642076/how-to-save-sms-to-inbox-in-android –

  • 读取和解析xml文件:
XmlPullParserFactory pullParserFactory; 
     try { 
      pullParserFactory = XmlPullParserFactory.newInstance(); 
      XmlPullParser parser = pullParserFactory.newPullParser(); 
       InputStream in_s = getApplicationContext().getAssets().open("temp.xml"); 
       parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); 
       parser.setInput(in_s, null); 
       parseXML(parser); 
     } catch (XmlPullParserException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
private void parseXML(XmlPullParser parser) throws XmlPullParserException,IOException 
{ 
ArrayList<SMSMessage> smsMessages = null; 
int eventType = parser.getEventType(); SMSMessage smsMessage = null; 

while (eventType != XmlPullParser.END_DOCUMENT){ 
      String name = null; 
      switch (eventType){ 
       case XmlPullParser.START_DOCUMENT: 
        smsMessages = new ArrayList(); 
        break; 
       case XmlPullParser.START_TAG: 
        name = parser.getName(); 
        if (name == "message"){ 
         smsMessage = new SMSMessage(); 
        } else if (smsMessage != null){ 
         if (name == "address"){ 
          smsMessage.address = parser.nextText(); 
         } else if (name == "body"){ 
          smsMessage.body = parser.nextText(); 
         } 
        } 
        break; 
       case XmlPullParser.END_TAG: 
        name = parser.getName(); 
        if (name.equalsIgnoreCase("message") && smsMessage != null){ 
         smsMessages.add(smsMessage); 
        } 
      } 
      eventType = parser.next(); 
     } 
} 
  • 要将消息写入手机内存:

活动:

for(SMSMessage aMessage : smsMessages){ 
    ContentValues my_values = new ContentValues(); 
    my_values.put("address", aMessage.address); 
    my_values.put("body", aMessage.body); 
    getContentResolver().insert(Uri.parse("content://sms/inbox"), my_values); 
} 

清单:

<uses-permission android:name="android.permission.READ_SMS"/> 
<uses-permission android:name="android.permission.WRITE_SMS"/> 

类似的东西。来源:this & that

P.S.由于你没有告诉我们这个数据结构应该包含什么(你如何使用所有的消息来构造你的xml文件),所以没有编译我自己,错误显然是存在的+ SMSMessage类应该被实现

+0

谢谢,我已经做到了这一点 –