监听短信demo
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Uri uri = Uri.parse("content://sms/sent"); //设置监听的url
ContentResolver resolver = this.getContentResolver();
resolver.registerContentObserver(uri, true, new SmsObserver(new Handler())); //注册监听
SmsManager smsManager = SmsManager.getDefault(); //这里是发送短信
smsManager.sendTextMessage("18583296382", null, "hao", null, null);
}
public class SmsObserver extends ContentObserver { //继承类
public SmsObserver(Handler handler) {
super(handler);
}
// 重写方法 处理监听事件
@Override
public void onChange(boolean selfChange)
{
Uri uri = Uri.parse("content://sms");
ContentResolver resolver = MainActivity.this.getContentResolver();
Cursor cursor = resolver.query(uri, null, null, null, null);
cursor.moveToFirst();
Toast.makeText(MainActivity.this, "已发送" + cursor.getString(0), 3000).show();
}
}
}
内容提供者需要在 query等方法 加上
getContext().getContentResolver().notifyChange(uri, null);
才可以在其他地方进行监听