2015-07-12 48 views
9

Theo the doc:Chặn SMS đến trên root Android 4.4 trở lên?

Lưu ý rằng, bắt đầu với Android 4.4-bất kỳ nỗ lực của ứng dụng của bạn để hủy bỏ phát sóng SMS_RECEIVED_ACTION sẽ bị bỏ qua vì vậy tất cả các ứng dụng quan tâm có cơ hội để nhận được nó.

vì vậy, chỉ ứng dụng SMS mặc định mới có thể thực hiện và có vẻ như không có gì thay đổi với Android 5.0 (do lý do không xác định, theo issue được đánh dấu là Lỗi thời).

Có cách nào để chặn SMS đến cho ứng dụng SMS không mặc định nếu điện thoại được bắt nguồn (điều này là cần thiết cho ứng dụng chặn spam) không? Làm thế nào để làm nó?

+1

Ai đã bỏ phiếu, bạn có thể vui lòng giải thích lý do không? –

Trả lời

4

Bạn có thể viết một dịch vụ ghi đè CarrierMessagingService. Nếu liên kết này thành công thì thông báo sẽ không được gửi đến ứng dụng chính.

BIND_CARRIER_MESSAGING_SERVICE quyền cần thiết để đăng ký dịch vụ nhắn tin của nhà cung cấp dịch vụ yêu cầu ứng dụng phải là ứng dụng hệ thống. Vì vậy, bạn cần phải đẩy ứng dụng của bạn vào hệ thống.

5

Đặt ứng dụng của bạn làm nhà cung cấp dịch vụ SMS mặc định. Sau đó, nó có thể đăng ký SMS_DELIVER_ACTION. Trong người nhận đó, bạn có thể chọn viết SMS vào cơ sở dữ liệu hay không. Nếu bạn chọn không, tin nhắn SMS về cơ bản bị bỏ qua. Nếu bạn chọn, bất kỳ ứng dụng nào khác đều có thể nhận SMS.

+1

Câu hỏi đặt ra là làm thế nào để làm điều đó mà không cần làm cho một ứng dụng như nhà cung cấp tin nhắn SMS mặc định. –

+4

Câu hỏi không nói rõ điều đó. Câu trả lời là bạn không thể - lý do họ thêm công cụ cung cấp SMS mặc định là để ngăn các ứng dụng sử dụng chức năng độc hại. Để ngăn chặn một tin nhắn SMS, bây giờ bạn phải được người dùng cấp quyền đó một cách rõ ràng. –

+1

Bạn nói đúng, câu hỏi không nói rõ ràng. –

2

Bạn có thể thử giải pháp sau:

Lặp lại danh sách các gói có khả năng xử lý SMS và tắt chúng theo cách lập trình.

Để có API để tắt ứng dụng, bạn sẽ phải trở thành ứng dụng đối tác MDM (Thiết bị di động). OEM cung cấp API bổ sung cho ứng dụng đối tác MDM của họ để điều khiển thiết bị. Ví dụ: samsung cung cấp api để tắt ứng dụng cụ thể Tôi đoán họ cũng có API để kiểm soát sự cho phép của các ứng dụng cụ thể.

Hoặc tôi đoán chế độ android mới Device/Profile Owner phải có API để tắt các ứng dụng cụ thể.

Các vấn đề liên quan