Sau khi thực hiện một số tài nguyên và câu hỏi, tôi vẫn gặp phải sự cố khi phát hiện tin nhắn SMS đến.BroadcastReceiver SMS_Received không hoạt động trên các thiết bị mới
Đoạn code dưới đây cho thấy những điều cơ bản:
Broadcast lớp nhận hiển thị bánh mì nướng onReceive
public class IncomingSms extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "something received", Toast.LENGTH_SHORT).show();
}
}
Simple Manifest với đăng ký nhận và cho phép
<application
<receiver
android:name=".IncomingSms"
android:permission="android.permission.BROADCAST_SMS"
android:exported="true">
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
Đoạn mã trên khai báo và đăng ký người nhận và đã quảng cáo quyền r. Ngoài ra, mức độ ưu tiên được đặt thành MAX_INT hoặc 2147483647.
Thiết bị của tôi là Nexus 6P, với ứng dụng Messenger mặc định được cài đặt (Tôi cũng đã thử Hangouts). Các ứng dụng vẫn không hiển thị bánh mì nướng của tôi. Sau khi thử trên một thiết bị Samsung cũ, bánh mì nướng được in đúng cách.
vấn đề ưu tiên
tôi cài đặt trên 6P một ứng dụng gọi là Manifest Viewer, cho phép tôi để xem manifest.xml các ứng dụng cài đặt trên điện thoại của tôi. Tôi đã kiểm tra các tệp kê khai của cả Messenger và Hangouts, đối với người nhận thẻ SMS và nhận thấy cả hai đều chỉ định mức độ ưu tiên là 2147483647. Có vẻ như cả hai ứng dụng nhắn tin đều có mức độ ưu tiên cao nhất và khi họ sử dụng thông điệp, họ không cho phép các ứng dụng khác can thiệp. Lưu ý rằng đây là các ứng dụng của Google và không phải bên thứ ba.
Tại thời điểm này, tôi khá bối rối là:
- tại sao họ sẽ làm điều này?
- cách bỏ qua?
Thanks a lot
Cũng có Nexus 6P. Cảm ơn những gì tôi cần! Cảm ơn bạn – RJB
Cảm ơn bạn, bài đăng tuyệt vời, rất hữu ích. Mặc dù tôi có ấn tượng rằng vấn đề có liên quan nhiều hơn đến cấp độ 23 và không phải là thiết bị Nexus. Và có lẽ bạn nên lưu ý rằng ghi đè cuối cùng là không thực sự cần thiết, chỉ cho các mã sao chép zombie như tôi ra khỏi đó ;-) – anhoppe