主要步骤:
1、 获取短信会话列表
2、根据获取到的会话列表中的recipient_ids 信息去canonical_addresses 中获取对应的地址信息。
package com.xx.readsms;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class ReadSmsActivity extends Activity {
/** Called when the activity is first created. */
private Context mContext;
private TextView tv;
private static List<ContactInfo> list=new ArrayList<ContactInfo>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)this.findViewById(R.id.tv_test);
getSMSInfo();
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
list.clear();
System.out.println("=================1");
getContacts_LastMessage();
System.out.println("=================2");
StringBuilder sb=new StringBuilder();
if(list!=null){
System.out.println("=================3");
for (int i = 0; i < list.size(); i++) {
System.out.println("=================4:"+i);
ContactInfo tmp=new ContactInfo();
tmp=(ContactInfo)list.get(i);
sb.append("["+tmp.getContact()+",");
sb.append(tmp.getLast_mms()+",");
sb.append(tmp.getDate_mms()+",");
sb.append(getCanonicalAddresses(tmp.getRecipient())+",");//去canonical_addresses表获取接收者号码
sb.append(tmp.getFinal_count()+"]\n");
}
tv.setText("");
tv.setText(sb.toString());
}
else{
System.out.println("list is null");
}
}
});
}
public String getCanonicalAddresses(String recipient_ids){
String[] ids=recipient_ids.split(" ");
System.out.println("recipient_ids:"+recipient_ids);
String addressResult="";
for (int i = 0; i < ids.length; i++) {
Cursor cur=ReadSmsActivity.this.getContentResolver().query(Uri.parse("content://mms/"),
new String[]{" * from canonical_addresses where _>return info;
}
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class ReadSmsActivity extends Activity {
/** Called when the activity is first created. */
private Context mContext;
private TextView tv;
private static List<ContactInfo> list=new ArrayList<ContactInfo>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)this.findViewById(R.id.tv_test);
getSMSInfo();
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
list.clear();
System.out.println("=================1");
getContacts_LastMessage();
System.out.println("=================2");
StringBuilder sb=new StringBuilder();
if(list!=null){
System.out.println("=================3");
for (int i = 0; i < list.size(); i++) {
System.out.println("=================4:"+i);
ContactInfo tmp=new ContactInfo();
tmp=(ContactInfo)list.get(i);
sb.append("["+tmp.getContact()+",");
sb.append(tmp.getLast_mms()+",");
sb.append(tmp.getDate_mms()+",");
sb.append(getCanonicalAddresses(tmp.getRecipient())+",");//去canonical_addresses表获取接收者号码
sb.append(tmp.getFinal_count()+"]\n");
}
tv.setText("");
tv.setText(sb.toString());
}
else{
System.out.println("list is null");
}
}
});
}
public String getCanonicalAddresses(String recipient_ids){
String[] ids=recipient_ids.split(" ");
System.out.println("recipient_ids:"+recipient_ids);
String addressResult="";
for (int i = 0; i < ids.length; i++) {
Cursor cur=ReadSmsActivity.this.getContentResolver().query(Uri.parse("content://mms/"),
new String[]{" * from canonical_addresses where _>return info;
}
}