返回列表 发新帖

android 短信列表_Android

[复制链接]

9

主题

28

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2024-10-17 16:40:20  | 显示全部楼层 | 阅读模式
在Android中,我们可以通过使用SmsManager和ContentResolver类来获取短信列表,以下是详细步骤:

zbhjgkgge44sxcj.jpg

zbhjgkgge44sxcj.jpg


(图片来源网络,侵删)
1、添加权限
在AndroidManifest.xml文件中添加读取短信的权限:


2、获取短信列表
我们可以通过ContentResolver对象查询短信数据库,获取所有的短信列表。
3、解析短信内容
从Cursor对象中解析出短信的发送者、接收者、时间戳和内容等信息。
以下是一个具体的实现例子:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 获取ContentResolver对象
        ContentResolver resolver = getContentResolver();
        
        // 查询短信
        Cursor cursor = resolver.query(Uri.parse("content://sms/inbox"), null, null, null, null);
        
        // 遍历短信
        if (cursor != null && cursor.moveToFirst()){
            do {
                String address = cursor.getString(cursor.getColumnIndex("address")); // 发送者
                long timestamp = cursor.getLong(cursor.getColumnIndex("date")); // 时间戳
                String body = cursor.getString(cursor.getColumnIndex("body")); // 内容
                String type = cursor.getString(cursor.getColumnIndex("type")); // 类型
               
                // 打印短信信息
                Log.d("SMS", "Address: " + address);
                Log.d("SMS", "Timestamp: " + timestamp);
                Log.d("SMS", "Body: " + body);
                Log.d("SMS", "Type: " + type);
            } while (cursor.moveToNext());
        }
        cursor.close();
    }
}
在这个例子中,我们首先获取了一个ContentResolver对象,然后通过这个对象查询了短信数据库,查询的结果是一个Cursor对象,我们可以遍历这个Cursor对象来获取每一条短信的详细信息。
注意:由于涉及到用户隐私,所以在实际的应用开发中,我们需要向用户请求读取短信的权限,并且只在用户同意的情况下才进行读取操作。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表