I am developing an application which backup the android text Messages, I am able to save the text messages in xml file, Now I want to import this file messages back to android. I don'nt Know how to do this, Any help will be most appreciated
Asked
Active
Viewed 456 times
0
-
Read here: http://stackoverflow.com/questions/642076/how-to-save-sms-to-inbox-in-android – Boris Mocialov Jun 27 '13 at 20:21
1 Answers
0
- To read and parse xml file:
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();
}
}
- To write messages to phone memory:
Activity:
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);
}
Manifest:
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
Something like that. Sources: this & that
P.S. Haven't compiled myself, mistakes are, obviously, present + SMSMessage class should be implemented, since you haven't told us what this datastructure should contain (how you structure your xml file with all the messages)

Boris Mocialov
- 3,439
- 2
- 28
- 55