Cha*_*har 6 sms android telephonymanager
我想开发一个跟踪发送/接收短信的应用程序.我的意思是,当用户从其设备发送消息时,消息详细信息应保存到我提供的表中.同样,当设备收到任何短信时,那也应该保存到我提供的表格中.
请注意,用户使用Android的默认消息应用程序发送消息.我的意思是我没有将我的应用程序与默认的消息应用程序集成.我只需跟踪该应用程序发送的所有消息,因为Android会跟踪其消息应用程序的已发送消息文件夹中的所有已发送消息.
我该怎么做?请帮我.我不需要答案,但我需要一些线索来做到这一点.
请不要建议阅读收件箱和发件箱等中的邮件.因为我想在用户发送/接收邮件时保存邮件.不是在发送或接收之后.
2re*_*d13 10
在Manifest中使用广播接收器写入很容易:
编辑:似乎只适用于SMS_RECEIVED,请参阅此主题
<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>
Run Code Online (Sandbox Code Playgroud)
和许可:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
Run Code Online (Sandbox Code Playgroud)
然后创建接收器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
}
}
}
Run Code Online (Sandbox Code Playgroud)
处理传入的短信可能如下所示:
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();
....
}
Run Code Online (Sandbox Code Playgroud)
如果你想阻止短信被推入incom,你可以用以下方法实现:
abortBroadcast();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12476 次 |
| 最近记录: |