編輯:關於Android編程
思路:使用內容觀察者監聽短信數據庫。
以下代碼在Activity中調用
SmsContent content = new SmsContent(new Handler());
//注冊短信變化監聽 this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, content);
自定義短信數據庫觀察者:SmsContent (managedQuery是上下文中的方法)
/**
* 監聽短信數據庫
*/
class SmsContent extends ContentObserver {
private Cursor cursor = null;
public SmsContent(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
//讀取收件箱中指定號碼的短信
cursor = managedQuery(Uri.parse("content://sms/inbox"), new String[]{"_id", "address", "read", "body"},
" address=? and read=?", new String[]{"10010", "0"}, "_id desc");//按id排序,如果按date排序的話,修改手機時間後,讀取的短信就不准了
if (cursor != null && cursor.getCount() > 0) {
ContentValues values = new ContentValues();
values.put("read", "1"); //修改短信為已讀模式
cursor.moveToNext();
int smsbodyColumn = cursor.getColumnIndex("body");
String smsBody = cursor.getString(smsbodyColumn); //得到一條完整的消息
}
//在用managedQuery的時候,不能主動調用close()方法, 否則在Android 4.0+的系統上, 會發生崩潰
if (Build.VERSION.SDK_INT < 14) {
cursor.close();
}
}
}
Android開發之程序員必須要懂得Android的重要設計理念2
上篇文章介紹了Android開發的設計理念的一部分,並沒有得到博友們的多大認可,只看到了一位博友在下面留言期待下一篇文章的發表,為了這小小的唯一支持,我決定繼續把後面的8
直接應用項目中的Android圖片緩存技術
前不久搞的Android圖片緩存,剛開始引入開源的框架,用著還行,但是在開發中遇到問題,就比如universal-image-loader-1.9.5.jar這個框架吧,
Android Notification的簡單應用
Notification是顯示在手機狀態欄的通知,手機狀態欄位於手機屏幕的最上方,哪裡一般顯示了手機當前的網絡狀態、電池狀態、時間等。Notification鎖代表的是一
Android安全機制--四大組件安全
組件有Public和Private的概念,是否能被其他方調用。通過android:exported字段來確定,android:exported=true表示能,反之不行。