cuốn sách gpt4 ai đã làm

android - chặn, đọc và hủy tin nhắn văn bản

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 20:21:04 31 4
mua khóa gpt4 Nike

Tôi đang tìm cách kết nối với SMSManager hoặc cơ chế cấp thấp hơn để tôi có thể chặn, đọc và hủy mọi tin nhắn SMS gửi đi trước khi chúng được gửi.

câu trả lời hay nhất

Thà muộn còn hơn không :)

Tôi đã dành 2 ngày cho việc này...và không muốn người khác lãng phí thời gian của họ :)

  1. Tạo một dịch vụ và đăng ký người quan sát nội dung trong lớp dịch vụ

Cập nhật: Đã thêm lớp mô hình SMS

      SMS lớp công khai {
ngày công khai;
Chuỗi công khai từ;
tin nhắn chuỗi công khai;
Chuỗi công khai tới;

SMS công khai(Chuỗi paramString1, Chuỗi paramString2, Chuỗi paramString3,Date paramDate) {
this.from = paramString1;
this.to = paramString2;
this.message = paramString3;
this.date = paramDate;
}
}

    lớp công khai ServiceClass mở rộng Dịch vụ triển khai SMSListener {
boolean tĩnh công khai sendSms = true;
riêng tư cuối cùng IBinder mBinder = new LocalBinder();
công khai MyContentObserver mSMSObserver;
bối cảnh riêng tư ctx;
thông số SMS tĩnh công cộng_SMS;
int myID = -1;

@Ghi đè
public int onStartCommand(Ý định, cờ int, int startId) {
// TODO sơ khai phương thức được tạo tự động

myID = startId;
gửiSms = đúng;
Bối cảnh localContext = getApplicationContext();
ctx = localContext;

mSMSObserver = MyContentObserver mới(null);
mSMSObserver.setSMSListener(cái này);
mSMSObserver.start(localContext);

trả lại Dịch vụ.START_STICKY;
}

@Ghi đè
khoảng trống công khai trênDestroy() {
// TODO sơ khai phương thức được tạo tự động
SharedPreferences prefs = getApplicationContext().getSharedPreferences(
"dữ liệu ứng dụng", 0);

if (prefs.getBoolean(CommonStrings.KEY_PREFS_TOGGLE, false)) {

super.onDestroy();
Log.e("OnDestroy", "Dừng dịch vụ");
Bối cảnh localContext = getApplicationContext();
mSMSObserver.stop(localContext);

thử {
stopSelf(myID);
Log.e("Tự dừng", "Dịch vụ đang dừng");
} catch (Exception e) {
e.printStackTrace();
}
}
}

@Ghi đè
IBinder công khai onBind(Ý định) {
// TODO sơ khai phương thức được tạo tự động
Log.e("OnBinder", "OnBinder");
return null;
}

@Ghi đè
báo cáo void công khaiIncomingSms(SMS paramSMS) {
// TODO sơ khai phương thức được tạo tự động

}

báo cáo void công khaiOutendingSms(SMS paramSMS) {
if (!MainActivity.stopped) {
Log.e("ĐÃ PHÁT HIỆN SMS ĐANG RA", "ĐÃ PHÁT HIỆN SMS ĐANG RA");
gửiSms = đúng;
param_SMS = paramSMS;

// LÀM BẤT CỨ ĐIỀU GÌ, đã phát hiện thấy tin nhắn gửi đi...

}
}

lớp công khai LocalBinder mở rộng Binder {
công khai LocalBinder() {
}

dịch vụ công cộng getService() {
trả về ServiceClass.this;
}
}
}
  1. Trình xem nội dung mở rộng

    lớp công khai MyContentObserver mở rộng ContentObserver {

    chung kết tĩnh int MESSAGE_TYPE_ALL = 0;
    chung kết tĩnh int MESSAGE_TYPE_DRAFT = 3;
    chung kết tĩnh int MESSAGE_TYPE_FAILED = 5;
    chung kết tĩnh int MESSAGE_TYPE_INBOX = 1;
    chung kết tĩnh int MESSAGE_TYPE_OUTBOX = 4;
    chung kết tĩnh int MESSAGE_TYPE_QUEUED = 6;
    chung kết tĩnh int MESSAGE_TYPE_SENT = 2;
    chuỗi tĩnh cuối cùng TYPE = "loại";
    SMSListener riêng tư mSMSListener;
    _id tĩnh công khai dài;
    người quan sát ContentObserver riêng tư;
    public MyContentObserver(Trình xử lý) {
    siêu (xử lý);
    // TODO Sơ khai hàm tạo được tạo tự động
    }
    khoảng trống riêng tư readFromOutendingSMS(Context paramContext) {
    if (!MainActivity.stopped) {
    Con trỏ localCursor = paramContext.getContentResolver().query(
    Uri.parse("content://sms"), null, null, null, null);
    dài l = 0;
    int i;
    if (localCursor.moveToNext()) {
    l = localCursor.getLong(localCursor.getColumnIndex("_id"));
    Chuỗi str1 = localCursor.getString(localCursor
    .getColumnIndex("giao thức"));
    i = localCursor.getInt(localCursor.getColumnIndex("type"));
    if ((str1 != null) || (i != 6))
    localCursor.close();
    nếu (i == 6) {
    int j = localCursor.getColumnIndex("body");
    int k = localCursor.getColumnIndex("địa chỉ");
    Ngày localDate = Ngày mới(localCursor.getLong(localCursor
    .getColumnIndex("date")));
    Chuỗi str2 = localCursor.getString(k);
    Chuỗi str3 = localCursor.getString(j);
    localCursor.close();
    _id = l;
    // Xóa SMS và lưu nội dung sms vào biến loại tùy chỉnh
    if (deleteSms(paramContext, l)) {
    SMS localSMS = SMS mới("", str2, str3, localDate);
    this.mSMSListener.reportOutendingSms(localSMS);
    } khác {
    localCursor.close();
    }
    }
    }
    }
    }

    public static boolean deleteSms(Context paramContext, long paramLong) {
    Uri localUri = ContentUris.withAppendsId(Uri.parse("content://sms"),
    paramLong);
    bool boolean = sai;
    nếu (localUri != null) {
    thử {
    int j = paramContext.getContentResolver().delete(localUri,
    vô giá trị, vô giá trị);
    nếu(j==1)
    bool = đúng;
    khác
    bool = sai;
    } bắt (Ngoại lệ localException) {
    localException.printStackTrace();
    bool = sai;
    }
    }
    trả về bool;
    }

    đăng ký void riêng tưContentObserver (Bối cảnh cuối cùng paramContext) {
    this.observer = new ContentObserver(null) {
    public void onChange(boolean paramAnonymousBoolean) {
    readFromOutendingSMS(paramContext);
    }
    };
    paramContext.getContentResolver().registerContentObserver(
    Uri.parse("content://sms"), true, this.observer);
    }
    public void setSMSListener(SMSListener paramSMSListener) {
    this.mSMSListener = paramSMSListener;
    }
    public void start(Context paramContext) {
    registerContentObserver(paramContext);
    listenForIncomingSms(paramContext);
    }

    public void stop(Context paramContext) {
    paramContext.getContentResolver().unregisterContentObserver(
    this.observer);
    }
    khoảng trống riêng tư listenForIncomingSms(Context paramContext) {
    //.....
    }

    }
  2. người nghe tin nhắn SMS

     giao diện trừu tượng công cộng SMSListener {
    báo cáo void trừu tượng công khaiIncomingSms(SMS paramSMS);

    báo cáo khoảng trống trừu tượng công khaiOutendingSms(SMS paramSMS);
    }

Quyền cần thiết:

   

Về android - chặn, đọc và hủy tin nhắn văn bản, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/5589395/

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress