内容提供者获取手机所有的短信

      这一篇和上一篇获取手机联系人是一样的思路,首先我们先来看下效果图

    


这就是获取到手机里面的所有短信,包括号码、时间、是接受还是发送、内容,我的xml布局的根标签是用 SrollView,所以整个页面可以自动往下拉,

下面我们就来看看代码

package com.example.mycontentresolver2;

import android.content.ContentResolver;
import android.content.ContentUris;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by Administrator on 2017/2/21.
 */

public class SMSActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sms);
        TextView tv_sms= (TextView) findViewById(R.id.tv_sms);
        ContentResolver cr = getContentResolver();
        Cursor cursor=cr.query(Uri.parse("content://sms/"),null,null,null,null);
        StringBuffer buffter=new StringBuffer();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        while (cursor.moveToNext()){
            String address=cursor.getString(cursor.getColumnIndex("address"));//获取短信的号码
           String date=simpleDateFormat.format(new Date(cursor.getLong(cursor.getColumnIndex("date"))));//获取短信的日期
            String body= cursor.getString(cursor.getColumnIndex("body"));//获取短信内容
            int type= cursor.getInt(cursor.getColumnIndex("type"));//获取类型,看是否是接收还是发送
            String typeStr="";
            if(type==1){
                typeStr="接收";
            }else if(type==2){
                typeStr="发送";
            }else{
                typeStr=null;
            }

           buffter.append(address+":\t\t"+date+":\t\t"+typeStr+":\t\t"+body+"\r\n\n");//拼接短信内容
            Log.i("test",address+"   "+body+"  "+type);
        }
             tv_sms.setText(buffter.toString()); //把所有内容发到xml的TextView
    }
}
最后还要记得加读取短信的权限:

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


 


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值