Android操作短信

本文介绍了在Android 4.4及更高版本中如何处理短信操作。发送短信前需确保应用为默认短信程序。提供了发送短信、读取短信和删除短信的代码示例。还讨论了使用ContentObserver监听短信变化,以及在接收到短信时通过通知栏提醒用户的方式,强调了对于被安全软件拦截的短信监听的局限性。
摘要由CSDN通过智能技术生成
最近做的一个项目智能设备项目,应用与设备之间的通信是通过短信实现的。因此在项目中就涉及到短信的拦截、发送、删除以及状态更新等问题。
Android中使用短信功能要配置一些基本的权限:
`<!-- 发送消息 -->
<uses-permission android:name="android.permission.SEND_SMS" />
<!-- 阅读消息 -->
<uses-permission android:name="android.permission.READ_SMS" />
<!-- 写入消息 -->
<uses-permission android:name="android.permission.WRITE_SMS" />
<!-- 接收消息 -->
<uses-permission android:name="android.permission.RECEIVE_SMS" />`
Android4.4上增加了不少安全措施,除了把SELinux设置为enforce外,在短信方向也加强了限制。

4.4之后,新增了一个default sms的机制,应用必须是默认的短信程序才可以收发短信。收发短信之前,先调用
if (!SmsWriteOpUtil.isWriteEnabled(mActivity)) {
SmsWriteOpUtil.setWriteEnabled(
mActivity, true);
}

发送代码:
device_no是目标手机号码,text是发送内容。

SmsManager.getDefault().sendTextMessage(device_no, null, text, null, null);

读取手机中的短信代码:
protocol 0代表短信,1代表彩信;
address 手机号码
body 短信内容
date 短信时间,long整型
_id 短信sqlite数据库中的id,自增
read 是否已读
其它字段百度

private Uri SMS_INBOX = Uri.parse("content://sms/inbox");
String query = WhereBuilder.b("address", "in", targets).and("protocol", "=", "0").toString();
        ContentResolver cr = mActivity.getContentResolver();
        String[] projection = new String[]{
  "_id", "body", "person", "address", "date"};//"_id", "address", "person",, "date", "type
        Cursor cur = cr.query(SMS_INBOX, projection, query, null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值