是否可以阅读 Android 中的短信而不是验证码?

Is it possible to read SMS in Android NOT for verification code?

我需要从自动发送的短信中获取 link,但这条短信总是来自不同的号码,所以它不像 Retriever API。

我想知道 - Android 8-9 岁及更高年龄段的人是否可以通过应用程序以编程方式阅读短信?

如果您知道一些示例 - 如果您愿意分享,将不胜感激:)

*此处的大多数主题都已过时或与 Retriever API 相关,因此我想确定了解最新的 Android 版本。

Telephony.Sms.Inbox and Telephony.Sms.Sent 个内容提供商可以访问传入和传出的短信数据。我很久以前就用过这个,但现在我得到了我的旧代码,它仍然可以在 api 29 中工作。这是我从收件箱 table 获取基本数据的示例代码,它是全文,但是更好的方法是通过内容提供商 类 访问 content_uri 和列。如果您想获得更多列,请查看文档。请记住,您需要授予 READ_SMS 权限。

        Uri inboxUri = Uri.parse("content://sms/inbox");
        String[] projection = new String[] { "_id", "date", "date_sent", "address", "body" };
        String sortOrder = "date";
        String limit = " DESC";

        Cursor cursor = mContext.getApplicationContext().getContentResolver().
                query(inboxUri, projection, null, null, sortOrder + limit);
        if (cursor != null) {
            if (cursor.moveToFirst()) {
                do {
                    //read sms data
                } while (cursor.moveToNext());
            }
            cursor.close();
        }