内容解析者ContentResolver,显示短信

信息封装类SmsInfo

public class SmsInfo {
    private int _id;                    // 短信的主键
    private String address;           // 发送地址
    private int type;                  // 类型
    private String body;              // 短信内容
    private long date;                // 时间
    // 构造方法
    public SmsInfo(int _id, String address, int type, String body, long date) {
        this._id = _id;
        this.address = address;
        this.type = type;
        this.body = body;
        this.date = date;
    }
    public int get_id() {
        return _id;
    }
    public void set_id(int _id) {
        this._id = _id;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public int getType() {
        return type;
    }
    public void setType(int type) {
        this.type = type;
    }
    public String getBody() {
        return body;
    }
    public void setBody(String body) {
        this.body = body;
    }
    public long getDate() {
        return date;
    }
    public void setDate(long date) {
        this.date = date;
    }
}

MainActivity页面


public class MainActivity extends AppCompatActivity {
    private TextView tv_sms;
    private TextView tv_des;
    private String text = "";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_sms = (TextView) findViewById(R.id.tv_sms);
        tv_des = (TextView) findViewById(R.id.tv_des);
        queryAuthority();
    }
    //请求权限
    private void queryAuthority() {
        int hasPermission = 0;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            hasPermission = checkSelfPermission(Manifest.permission.READ_SMS);
        }
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(new String[]{Manifest.permission.READ_SMS}, 123);
            }
            return;
        }
    }

    public void readSMS(View view) {
        text="";
        //查询系统信息的uri
        Uri uri=Uri.parse("content://sms/");
        //获取解析对象
        ContentResolver resolver=getContentResolver();
        //通过ContentResolver对象查询系统短信
        Cursor cursor = resolver.query(uri,new String[]{"_id","address","type","body","date"},null,null,null);
        List<SmsInfo>smsInfos=new ArrayList<SmsInfo>();
        if (cursor!=null&&cursor.getCount()>0){
         tv_des.setVisibility(View.VISIBLE);
         while (cursor.moveToNext()){
             int _id = cursor.getInt(0);
             String address = cursor.getString(1);
             int type = cursor.getInt(2);
             String body = cursor.getString(3);
             long date = cursor.getLong(4);
             SmsInfo smsInfo = new SmsInfo(_id,address,type,body,date);
             smsInfos.add(smsInfo);
         }
         cursor.close();
        }
        //将查询的结果显示
        for (int i=0;i<smsInfos.size();i++){
             text+="手机号"+smsInfos.get(i).getAddress()+"\n";
             text+="短信内弄"+smsInfos.get(i).getBody()+"\n\n";
        }
        tv_sms.setText(text);


    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值