首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Android中将短信保存到收件箱?

要在Android中将短信保存到收件箱,您需要使用广播接收器(BroadcastReceiver)来监听短信的到达事件。以下是一个简单的示例,展示了如何实现这个功能:

  1. 首先,在AndroidManifest.xml文件中添加以下权限和广播接收器:
代码语言:xml
复制
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<receiver android:name=".SmsReceiver">
   <intent-filter>
       <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
</receiver>
  1. 创建一个名为SmsReceiver的Java类,并继承自BroadcastReceiver:
代码语言:java
复制
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // 获取短信内容
        Bundle bundle = intent.getExtras();
        SmsMessage[] messages = null;
        String strMessage = "";

        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            messages = new SmsMessage[pdus.length];

            for (int i = 0; i < pdus.length; i++) {
                messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i], "3gpp");
                strMessage += messages[i].getMessageBody();
            }

            // 将短信保存到收件箱
            String address = messages[0].getDisplayOriginatingAddress();
            String body = strMessage;
            String time = messages[0].getTimestampMillis() + "";
            saveSmsToInbox(context, address, body, time);

            // 显示收到的短信内容
            Toast.makeText(context, "收到短信:" + strMessage, Toast.LENGTH_SHORT).show();
        }
    }

    // 将短信保存到收件箱
    private void saveSmsToInbox(Context context, String address, String body, String time) {
        ContentValues values = new ContentValues();
        values.put("address", address);
        values.put("body", body);
        values.put("date", time);
        context.getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
    }
}

这个示例中,我们创建了一个名为SmsReceiver的广播接收器,用于监听短信到达事件。当收到短信时,我们将短信内容保存到收件箱中,并显示收到的短信内容。

注意:在Android 6.0(API 23)及更高版本的设备上,需要在运行时请求WRITE_EXTERNAL_STORAGE权限。具体实现方式可以参考官方文档

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云短信:腾讯云短信提供国内短信发送、国际/港澳台短信发送、短信签名、短信模板、短信回复等服务。
  • 腾讯云移动应用与游戏解决方案:腾讯云移动应用与游戏解决方案提供移动应用开发、游戏开发、推送服务、CDN加速、安全防护等服务。
  • 腾讯云即时通信 IM:腾讯云即时通信 IM 提供高效、稳定、安全的即时通讯服务,支持多种通信场景和消息类型。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券