Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 利用內容觀察者實現短信竊聽,android觀察者

Android 利用內容觀察者實現短信竊聽,android觀察者

編輯:關於android開發

Android 利用內容觀察者實現短信竊聽,android觀察者


《Android 內容觀察者的原理》中介紹了內容觀察者的一些基本原理,並做了簡單的實戰,本文接著進一步做一個小項目實戰

package com.wuyudong.smslistener;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

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 {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Uri uri = Uri.parse("content://sms");
        getContentResolver().registerContentObserver(uri, true,
                new MyObserver(new Handler()));

    }

    private class MyObserver extends ContentObserver {

        public MyObserver(Handler handler) {
            super(handler);
        }

        @Override
        public void onChange(boolean selfChange) {
            System.out.println("短信數據庫發生變化了。");
            Uri uri = Uri.parse("content://sms");
            Cursor cursor = getContentResolver().query(uri,
                    new String[] { "body", "address", "date", "type" }, null,
                    null, "_id desc");
            cursor.moveToFirst();
            String body = cursor.getString(0);
            String address = cursor.getString(1);
            String date = cursor.getString(2);
            String type = cursor.getString(3);

            try {
                File file = new File(getFilesDir(), "XXX.abc");
                FileOutputStream fos = new FileOutputStream(file, true);
                fos.write(("內容: " + body + "--地址" + address + "--時間: " + date
                        + "--類型" + type + "\n").getBytes());
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            super.onChange(selfChange);
        }
    }

}

添加權限:android.permission.READ_SMS

運行代碼後,只要短信發生變化,都會提示,並且短信的內容會自動保存在XXX.abc文件中

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved