11-2 内容观察者&通过内容观察者获取用户发送短信的内容

来源:互联网 发布:ug编程教程百度云盘 编辑:程序博客网 时间:2024/04/29 20:14
package org.china.java.listensmsdemo;import java.text.SimpleDateFormat;import java.util.Date;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.database.ContentObserver;import android.database.Cursor;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);Uri uri=Uri.parse("content://sms/");getContentResolver().registerContentObserver(uri, true, new MyObserver(new Handler()));}public class MyObserver extends ContentObserver{public MyObserver(Handler handler) {super(handler);}@Overridepublic void onChange(boolean selfChange) {System.out.println("有新的短信产生");Cursor cursor=getContentResolver().query(Uri.parse("content://sms/outbox"), null, null, null, null);SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");while(cursor.moveToNext()){int _id=cursor.getInt(cursor.getColumnIndex("_id"));String address=cursor.getString(cursor.getColumnIndex("address"));String body=cursor.getString(cursor.getColumnIndex("body"));long time=cursor.getLong(cursor.getColumnIndex("date"));Date dateType=new Date(time);String datetimeStr=sdf.format(dateType);System.out.println("主键:"+_id+";发送人:"+address+";短信内容:"+body+";发送时间:"+datetimeStr);}super.onChange(selfChange);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}

0 0