Android4.4以上の受信内容(親測定6.0利用可能)
2893 ワード
考え方:コンテンツ観察者を用いてメールデータベースを傍受する.
次のコードはActivityで呼び出されます.
カスタムメールデータベースオブザーバー:SmsContent(managedQueryはコンテキスト内のメソッド)
次のコードは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();
}
}
}