Android 短信架构主要包括以下几个部分:
(图片来源网络,侵删)
1、短信内容提供者(Sms Content Provider)
2、短信管理器(Sms Manager)
3、短信接收器(Sms Receiver)
4、短信应用界面(Sms Application Interface)
下面是详细的解释:
1、短信内容提供者(Sms Content Provider)
短信内容提供者是一个存储短信的数据库,它提供了对短信数据的访问接口,开发者可以通过ContentResolver来查询和操作短信数据。
查询所有短信的代码如下:
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(Uri.parse("content://sms/"), null, null, null, null);
2、短信管理器(Sms Manager)
短信管理器是一个用于发送短信的类,开发者可以通过SmsManager来发送短信。
发送短信的代码如下:
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNumber, null, message, pi, null);
3、短信接收器(Sms Receiver)
短信接收器是一个用于接收短信的广播接收器,开发者可以通过继承BroadcastReceiver来实现自己的短信接收器。
接收短信的代码如下:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String sender = smsMessage.getDisplayOriginatingAddress();
String messageBody = smsMessage.getDisplayMessageBody();
// do something with sender and messageBody
}
}
}
}
}
}
4、短信应用界面(Sms Application Interface)
短信应用界面是用户与短信应用交互的界面,开发者可以通过实现自己的Activity来创建自定义的短信应用界面。
创建一个显示短信列表的Activity的代码如下:
public class SmsListActivity extends ListActivity {
private Cursor cursor;
private SMSAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adapter = new SMSAdapter(this, cursor);
setListAdapter(adapter);
}
@Override
protected void onResume() {
super.onResume();
loadSmsInbox();
}
private void loadSmsInbox() {
cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null);
adapter = new SMSAdapter(this, cursor);
setListAdapter(adapter);
}
}
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/683055.html
© 版权声明
文章版权归作者所有,未经允许请勿转载。




