如何在Android中跟踪消息?

问题描述:

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

注意用户使用的Android的默认消息应用程序发送的消息。我的意思是我没有将我的应用程序与默认消息应用程序集成。我只需要跟踪从该应用程序发送的所有邮件的由于Android跟踪所有发送的消息在其信息应用发送消息文件夹。

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

请不要建议来读取收件箱和发件箱等消息,因为我想,当用户发送/接收它来保存的消息。未发送或接收它之后。

+2

你尝试过什么,什么是你所面临的问题?只是保持简单。 –

+0

@AndroSelva我没有任何线索如何做到这一点。我不想回答,但我想要一些线索。 –

+0

@Mido我不想阅读收件箱中的邮件并显示它。我想在用户发送时保存消息。 –

这是很容易与您的清单广播接收机写做:

编辑:似乎只为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(); 
+0

我只是想确认当用户试图从默认消息应用程序发送消息时,Android会调用我的Receiver类? –

+0

对不起,我建立一个应用程序,以确保我只收到SMS_RECEIVED行动,我不知道为什么...我将测试它 – 2red13

+0

的http://计算器。COM /问题/ 990558/Android的广播接收器换发送短信的消息 – 2red13

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这样的系统意图的广播。

+2

这abortBroadcast的东西,使我们能够制作软件来阻止来电或短信。我认为这是一件好事,可以用来作为一件坏事,就像很多其他的东西一样。人们可以使用钢笔杀死,让停止建立钢笔。 –

+0

我同意。它非常有用了很多好的Features.You不应中止每个传入的短信,但我的接收器能够确定:这短信对我,所以中止广播,否则让它穿过 – 2red13