第七例:短信监控之内容观察者
来源:互联网 发布:淘宝上买官换机靠谱吗 编辑:程序博客网 时间:2024/05/17 04:28
package demo.my.com.myapidemo.content;import android.app.Activity;import android.content.ContentResolver;import android.content.Context;import android.database.ContentObserver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.text.Editable;import android.util.Log;import android.widget.EditText;import demo.my.com.myapidemo.R;/** * Created by Hack on 2015/10/22. */public class SmsContentObserver extends Activity { private static final String TAG = "apidemo"; private EditText editText; ContentObserver smsObserver; private Uri SMS_INBOX = Uri.parse("content://sms"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); smsObserver = new SmsObserver(this, smsHandler); getContentResolver().registerContentObserver(SMS_INBOX, true, smsObserver); editText = (EditText) findViewById(R.id.edit_text); } public Handler smsHandler = new Handler() { //这里可以进行回调的操作 //TODO }; class SmsObserver extends ContentObserver { public SmsObserver(Context context, Handler handler) { super(handler); } @Override public void onChange(boolean selfChange) { super.onChange(selfChange); getSmsFromPhone(); } } //获取手机短信内容 public void getSmsFromPhone() { ContentResolver cr = getContentResolver(); String[] projection = new String[]{"body","type"};//"_id", "address", "person",, "date", "type" String where = " date > " + (System.currentTimeMillis() - 10 * 1000); Cursor cur = cr.query(SMS_INBOX, projection, where, null, "date desc"); if (null == cur) return; if (cur.moveToNext()) { String body = cur.getString(cur.getColumnIndex("body")); String sms_type = cur.getString(cur.getColumnIndex("type")); if (body.indexOf("安卓") != -1 && sms_type.equals("1")) { //内容判断 String res = body.substring(0, 4); Log.i(TAG, res); editText.setText(res); //将光标移动到字符串最后 Editable ea = editText.getText(); editText.setSelection(ea.length()); } } } @Override protected void onStart() { super.onStart(); } @Override protected void onResume() { super.onResume(); } @Override protected void onDestroy() { super.onDestroy(); //这个时候就取消这个内容观察者, getContentResolver().unregisterContentObserver(smsObserver); Log.i(TAG, "onDestroy"); }}
在Activity创建的时候,注册内容观察者,在销毁的时候,取消内容观察者。
应用所需要的权限:
<uses-permission android:name="android.permission.READ_SMS" />截图:
监听验证码
Telephony.Sms相关知识链接:
http://www.cnblogs.com/fengzhblog/p/3193973.html
0 0
- 第七例:短信监控之内容观察者
- android 内容观察者之短信窃听器
- 内容观察者:监听短信
- android_75_ContentObserver_短信内容观察者
- 内容观察者-短信监听-备份-插入短信
- 内容观察者复习-监听短信demo
- 11-1内容观察者&通过内容观察者获取用户发送短信的内容
- 11-2 内容观察者&通过内容观察者获取用户发送短信的内容
- zabbix监控之短信报警
- Android-内容提供者、ListView点击事件、观察者、监听短信/联系人
- Android-插入/查询联系人/短信收到提醒(内容观察者)
- android(18)(内容观察者,监听系统短信)
- 内容观察者 ContentObserver 监听短信、通话记录数据库 挂断来电
- 内容提供者ContentProvider共享数据,监控短信,操作联系人
- android之ContentObserver内容观察者的使用
- 设计模式之内容观察者模式
- 四大组件之ContentProvider(内容观察者)&数据库
- Android ContentProvider之ContentObserver内容观察者
- 一起做RGB-D SLAM (1)
- Java 反向代理J2EP
- java 面试题集锦
- 正则表达式入门
- IOS 通过GET方式与服务器通信
- 第七例:短信监控之内容观察者
- 一起做RGB-D SLAM (2)
- Java服务器开发
- ios nil、NULL和NSNull 的使用
- 自动布局之autoresizingMask
- java基础-面向对象(继承、多态)
- Java——反射机制实例
- SQL中的cast()函数介绍
- 一起做RGB-D SLAM (3)