android studio 读取短信

配置信息manifes中加入权限

    
    
    

之后main函数中 的代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getContentResolver().registerContentObserver(Uri.parse("content://sms"),true,
                new MyObserver(new Handler()));
    }

    private final class MyObserver extends ContentObserver {
        public MyObserver(Handler handler){
            super(handler);
        }
        @Override
        public void onChange(boolean selfChange) {
            Cursor cursor=getContentResolver().query(Uri.parse("content://sms/inbox"),
                    null,null,null,null);
            while (cursor.moveToNext()){
                StringBuilder sb=new StringBuilder();
                sb.append("address=").append(cursor.getString(cursor.getColumnIndex("address")));
                sb.append(";subject").append(cursor.getString(cursor.getColumnIndex("subject")));
                sb.append(";body").append(cursor.getString(cursor.getColumnIndex("body")));
                sb.append(";time").append(cursor.getLong(cursor.getColumnIndex("date")));
                System.out.println("用户发送出去的信息"+sb.toString());
            }
        }
    }
}

在虚拟机中 开启sms权限

android studio 读取短信_第1张图片
android studio 读取短信_第2张图片
打开之后,我们打开 写的 myapplication
并且用虚拟机发送信息

android studio 读取短信_第3张图片
然后查看logcat 中debug
android studio 读取短信_第4张图片
就可以查到 信息

数据库的位置
android studio 读取短信_第5张图片
android studio 读取短信_第6张图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(android,studio)