Android编程之监听器用法实例分析

2019-12-10 19:32:28刘景俊

监听发送短信

1.Android系统提供了Provider对短信进行查询,当发出短信时也会发送更改通知

2.定义一个Observer监听"content://sms"

3.在onChange()方法中查询用户发送的短信"content://sms/outbox"

4.短信发送信息存放在数据库 date/date/com.android.providers.telephony

5.需要权限<uses-permission android:name="android.permission.READ_SMS" />

示例:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  getContentResolver().registerContentObserver(Uri.parse("content://sms"), true, new SmsObserver(new Handler()));
}
//监听发送的短信
private final class SmsObserver extends ContentObserver {
  public SmsObserver(Handler handler) {
    super(handler);
  }
  public void onChange(boolean selfChange) {
    ContentResolver resolver = getContentResolver();
    //查到发出的短信
    Uri uri = Uri.parse("content://sms/outbox");
    Cursor cursor = resolver.query(uri, new String[] { "date", "address", "body" }, null, null, "_id desc limit 1");
    if (cursor.moveToNext()) {
      long ms = cursor.getLong(0);
      String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(ms));
      String address = cursor.getString(1);
      String body = cursor.getString(2);
      System.out.println(date + " " + address + " " + body);
    }
  }
}

希望本文所述对大家Android程序设计有所帮助。



注:相关教程知识阅读请移步到Android开发频道。