編輯:關於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開發的設計理念的一部分,並沒有得到博友們的多大認可,只看到了一位博友在下面留言期待下一篇文章的發表,為了這小小的唯一支持,我決定繼續把後面的8
前不久搞的Android圖片緩存,剛開始引入開源的框架,用著還行,但是在開發中遇到問題,就比如universal-image-loader-1.9.5.jar這個框架吧,
Notification是顯示在手機狀態欄的通知,手機狀態欄位於手機屏幕的最上方,哪裡一般顯示了手機當前的網絡狀態、電池狀態、時間等。Notification鎖代表的是一
組件有Public和Private的概念,是否能被其他方調用。通過android:exported字段來確定,android:exported=true表示能,反之不行。