android获取短信内容


自己研究:

package com.liyong.data;

import java.util.Date;

public class MyMessage {

private int messageNum;
private String message;
private String phonenumber;
private String name;
private String date;
private String type;

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

public String getDate() {
return date;
}

public void setDate(String date) {
this.date = date;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getMessageNum() {
return messageNum;
}

public void setMessageNum(int messageNum) {
this.messageNum = messageNum;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public String getPhonenumber() {
return phonenumber;
}

public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public MyMessage() {

}
public MyMessage(int messageNum, String message, String phonenumber) {
this.messageNum = messageNum;
this.message = message;
this.phonenumber = phonenumber;
}
public MyMessage(String date,String name, String message, String phonenumber,String type) {
this.type=type;
this.date = date;
this.name = name;
this.message = message;
this.phonenumber = phonenumber;
}

}

方法:


public  static ArrayList<MyMessage> getSmsInfos(Context context) { 
  
        final String SMS_URI_INBOX = "content://sms/inbox";// 收信箱 
        ArrayList<MyMessage> mymessages=null;
         try { 
            ContentResolver cr = context.getContentResolver(); 
            String[] projection = new String[] { "_id", "address", "person","body", "date", "type" }; 
             Uri uri = Uri.parse(SMS_URI_INBOX); 
             Cursor cursor = cr.query(uri, projection, null, null, "date desc"); 
             mymessages=new ArrayList<MyMessage>();
             MyMessage message=null;
            while (cursor.moveToNext()) { 
                 message = new MyMessage(); 
                 // -----------------------信息----------------  
                int nameColumn = cursor.getColumnIndex("person");// 联系人姓名列表序号  
                int phoneNumberColumn = cursor.getColumnIndex("address");// 手机号  
                int smsbodyColumn = cursor.getColumnIndex("body");// 短信内容  
                int dateColumn = cursor.getColumnIndex("date");// 日期  
                int typeColumn = cursor.getColumnIndex("type");// 收发类型 1表示接受 2表示发送  
                String nameId = cursor.getString(nameColumn); 
                String phoneNumber = cursor.getString(phoneNumberColumn); 
                String smsbody = cursor.getString(smsbodyColumn); 
                Date d = new Date(Long.parseLong(cursor.getString(dateColumn))); 
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd " + "\n" + "hh:mm:ss"); 
                String date = dateFormat.format(d); 
              
               
                 // --------------------------匹配联系人名字--------------------------  
 
                Uri personUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,phoneNumber); 
                Cursor localCursor = cr.query(personUri, new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup.PHOTO_ID,PhoneLookup._ID }, null, null, null); 
                 
               System.out.println(localCursor.getCount()); 
               System.out.println("之前----"+localCursor); 
                if (localCursor.getCount()!=0) { 
                   localCursor.moveToFirst(); 
                    System.out.println("之后----"+localCursor); 
                    String name = localCursor.getString(localCursor.getColumnIndex(PhoneLookup.DISPLAY_NAME)); 
                    message.setName(name); 
                  
                }else{ 
                message.setName(phoneNumber); 
                   
                } 
                      
                 localCursor.close(); 
                 message.setDate(date);
             message.setMessage(smsbody);
             message.setPhonenumber(phoneNumber);
             mymessages.add(message); 
             } 
           
         } catch (SQLiteException e) { 
             e.printStackTrace(); 
         } 
         return mymessages; 
     } 

猜你喜欢

转载自1028826685.iteye.com/blog/1667264