如何在Android中跟踪消息?
我想开发一个跟踪发送/接收短信的应用程序。我的意思是,当用户从其设备发送消息时,消息详细信息应保存到我提供的表格中。同样,当设备收到任何短信时,那也应该保存到我提供的表格中。如何在Android中跟踪消息?
注意用户使用的Android的默认消息应用程序发送的消息。我的意思是我没有将我的应用程序与默认消息应用程序集成。我只需要跟踪从该应用程序发送的所有邮件的由于Android跟踪所有发送的消息在其信息应用的发送消息文件夹。
我该怎么做?请帮帮我。我不需要答案,但我需要一些线索去做。
请不要建议来读取收件箱和发件箱等消息,因为我想,当用户发送/接收它来保存的消息。未发送或接收它之后。
这是很容易与您的清单广播接收机写做:
编辑:似乎只为SMS_RECEIVED工作,看到这个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" />
然后创建接收llike:
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
}
}
}
要处理传入的短信可能是:
abortBroadcast();
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();
....
}
如果你想阻止短信在commen收件箱推,你可以做到这一点
请不叫 abortBroadcast() 你会阻止其他应用程序接收SMS_RECEIVED有序广播。这是不好的行为,这不是什么机器人。我不明白为什么谷歌甚至会让开发人员放弃像SMS这样的系统意图的广播。
这abortBroadcast的东西,使我们能够制作软件来阻止来电或短信。我认为这是一件好事,可以用来作为一件坏事,就像很多其他的东西一样。人们可以使用钢笔杀死,让停止建立钢笔。 –
我同意。它非常有用了很多好的Features.You不应中止每个传入的短信,但我的接收器能够确定:这短信对我,所以中止广播,否则让它穿过 – 2red13
你尝试过什么,什么是你所面临的问题?只是保持简单。 –
@AndroSelva我没有任何线索如何做到这一点。我不想回答,但我想要一些线索。 –
@Mido我不想阅读收件箱中的邮件并显示它。我想在用户发送时保存消息。 –