android 監聽並獲取手機發出的短信

我們通常只監聽獲取手機收到的短信,但是最近有需求獲取手機發出取得短信,度娘了一把,終於找到答案,在此做個筆記:

監聽發送短信

    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);
			}
		}
	}



感謝提供此內容的博主:http://blog.csdn.net/furongkang/article/details/6824736

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章