Android获取新收到的短信内容
2016-03-31 21:19
369 查看
1.写在前面
在学习使用广播接收最新短信的时候,明明写的和视频里老师讲的代码一模一样,可就是收到的短信为null,不是说收不到短信,而是短信接收到了,收到的短信内容为null,于是度娘了半天,将优先级改到流氓级别的2147483647还是不行。于是我就换了一个思路,还是使用广播接收到有新消息的广播,但是短信内容不从广播中读取,而是延时几秒钟(ps:我用的是3秒),等系统短信应用将数据写入数据库,再从数据库读取短信内容。
2.代码
1.Java代码
public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 睡眠3秒,等待系统信息APP将短信写入数据库 System.out.println("-----------手机收到新短息----------"); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } Uri uri = Uri.parse("content://sms/inbox"); ContentResolver smsResolver = context.getContentResolver(); // 获取sms表中_id最大值,即最新收到短信的_id值 Cursor idCursor = smsResolver.query(uri, new String[] { "count(_id)" }, null, null, null); idCursor.moveToNext(); int _id = idCursor.getInt(0); idCursor.close(); Cursor smsCursor = smsResolver.query(uri, new String[] { "address", "body" }, "_id = ?", new String[] { "" + _id }, null); if (smsCursor != null) { smsCursor.moveToNext(); String address = smsCursor.getString(0); String body = smsCursor.getString(1); System.out.println(_id + "," + address + ":" + body); } } }
2.清单文件
不要忘记在清单文件中注册<receiver android:name=".receiver.SmsReceiver" > <intent-filter android:priority="2147483647"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
3.权限
也不要忘记权限<uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_SMS"/>
2.结果
相关文章推荐
- Windows x64 Android开发环境搭建
- android导入项目时提示:invalid project description的解决办法
- Android 域名解析为IP的方法
- ubuntu 16.04 android studio 安装
- Android 在SD卡上建立文件夹
- Android 布局属性大全
- 集成友盟推送android
- Android 文本输入框EditText属性和方法说明(转载)
- Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
- Android SDK Manager 下载SDK失败的解决办法 (转载)
- Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
- Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
- Android 开发Ubuntu下 adt 手机连接开发
- Android ProgressDialog进度条 等待条
- Android 动画anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性(转载)
- Android 动画之AlphaAnimation应用详解(透明度动画效果)转载
- Android 动画之ScaleAnimation应用详解(缩放动画效果 )(转载)
- Android Studio 修改包名报Error type 3 {package}does not exist
- Android开发颜色代码大全
- Android 动画之TranslateAnimation应用详解(位移动画效果 )(转载)