android studio 读取短信

配置信息manifes中加入权限

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

之后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权限

在这里插入图片描述
在这里插入图片描述
打开之后,我们打开 写的 myapplication
并且用虚拟机发送信息

在这里插入图片描述
然后查看logcat 中debug
在这里插入图片描述
就可以查到 信息

数据库的位置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了218 篇原创文章 · 获赞 309 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/qq_42777804/article/details/103472426