Android内容访问者获取短信

Android获取所有短信

android获取所有的短信,通过内容访问者(ContentResolver)
 //内容访问者
        ContentResolver cr = getContentResolver();

下面是效果图
这里写图片描述

获取短信必须添加权限

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

访问者的访问的地址

Uri.parse("content://sms/");

sms:
 _id:短信序号,如100
  
  thread_id:对话的序号,如100,与同一个手机号互发的短信,其序号是相同的
  
  address:发件人地址,即手机号,如+86138138000
  
  person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null
  
  date:日期,long型,如1346988516,可以对日期显示格式进行设置
  
  protocol:协议0SMS_RPOTO短信,1MMS_PROTO彩信
  
  read:是否阅读0未读,1已读
  
  status:短信状态-1接收,0complete,64pending,128failed
  
  type:短信类型1是接收到的,2是已发出
  
  body:短信具体内容
  
  service_center:短信服务中心号码编号,如+8613800755500

具体代码

public class MessageActivity extends AppCompatActivity {

    private ListView lv_message_listview;
    private String[] ss=null;//所以短信

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_message);
        //获取listVIew
        lv_message_listview = (ListView) findViewById(R.id.lv_message_listview);
        //内容访问者
        ContentResolver cr = getContentResolver();
        //访问的地址
        Uri uri = Uri.parse("content://sms/");
//        短信数据
        Cursor c=cr.query(uri,null,null,null,null);
        ss = new String[100];
        // 调获取数据的方法
        getMessage(c);

        ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, ss);
        //设置适配器
        lv_message_listview.setAdapter(adapter);

    }

    // 数据的方法
    public void getMessage(Cursor cursor){
        int i=0;
        while(cursor.moveToNext()){
            String str=cursor.getString(cursor.getColumnIndex("body"));//获取短信内容
            ss[i]=str;
            i++;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值