gpt4 book ai didi

android - 如何跟踪 Android 中的消息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:39 25 4
gpt4 key购买 nike

我想开发一个应用程序来跟踪发送/接收的短信。我的意思是,当用户从其设备发送消息时,消息详细信息应保存到我提供的表格中。同样,当设备收到任何短信时,也应将其保存到我提供的表格中。

请注意用户使用Android默认的消息应用发送消息。我的意思是我没有将我的应用程序与默认消息应用程序集成。我只需要跟踪从该应用程序发送的所有消息,因为 Android 会在其消息应用已发送消息 文件夹中跟踪所有已发送的消息。

我该怎么做?请帮我。我不需要答案,但我需要一些线索。

请不要建议阅读来自收件箱和发件箱等的消息。因为我想在用户发送/接收消息时保存消息。不是在发送或接收之后。

最佳答案

使用 list 中的广播接收器很容易做到这一点:

edit: seems only to work for SMS_RECEIVED see this thread

<receiver android:name=".SMSReceiver"  android:enabled="true">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<action android:name="android.provider.Telephony.SMS_SENT"/>
</intent-filter>
</receiver>

和权限:

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

然后像这样创建接收器:

public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
//do something with the received sms
}else if(intent.getAction().equals("android.provider.Telephony.SMS_SENT")){
//do something with the sended sms
}
}
}

处理传入的短信可能如下所示:

Bundle extras = intent.getExtras();
Object[] pdus = (Object[]) extras.get("pdus");
for (Object pdu : pdus) {
SmsMessage msg = SmsMessage.createFromPdu((byte[]) pdu);
String origin = msg.getOriginatingAddress();
String body = msg.getMessageBody();
....
}

如果你想阻止一条短信被推送到公共(public)收件箱中,你可以通过以下方式实现:

abortBroadcast();

关于android - 如何跟踪 Android 中的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com