学完ContentProvider之后,可以练习一个短信的监听器。
记住要加上读短信的权限。
public class DemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Uri uri = Uri.parse("content://sms/");
getContentResolver().registerContentObserver(uri, true, new SmsObserver(new Handler()));
}
public class SmsObserver extends ContentObserver{
public SmsObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
System.out.println("有新的短信产生 ");
Cursor cursor = getContentResolver().query(Uri.parse("content://sms/outbox"),null, null, null, null);
while(cursor.moveToNext()){<span style="white-space:pre"> </span>//获取短信的方法
StringBuilder sb = new StringBuilder();
sb.append("_id=").append(cursor.getInt(cursor.getColumnIndex("_id")));
sb.append(",address=").append(cursor.getString(cursor.getColumnIndex("address")));
sb.append(";body=").append(cursor.getString(cursor.getColumnIndex("body")));
sb.append(";time=").append(cursor.getLong(cursor.getColumnIndex("date")));
System.out.println(sb.toString());
}
super.onChange(selfChange);
}
}
}