Tôi có một số người nhận khai báo trong AndroidManifest tôi:android - "thu xuất khẩu không yêu cầu sự cho phép" trên máy thu có nghĩa là để nhận được từ dịch vụ hệ thống
<!-- no warning -->
<receiver
android:name=".receivers.TriggerMonitoringBootReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<!-- no warning -->
<receiver
android:name=".receivers.ScanResultsReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.net.wifi.SCAN_RESULTS" />
</intent-filter>
</receiver>
<!-- warning : Exported receiver does not require permission-->
<receiver
android:name=".receivers.BatteryMonitoringReceiver"
android:enabled="false">
<intent-filter>
<action android:name="@string/intent_action_setup_alarm" />
<action android:name="@string/intent_action_cancel_alarm" />
<action android:name="@string/intent_action_monitor" />
</intent-filter>
</receiver>
Người đầu tiên có nghĩa là để nhận được một hành động BOOT_COMPLETED
. Thứ hai là để nhận được android.net.wifi.SCAN_RESULTS
. Điều thứ ba là để nhận một số hành động mà tôi đã phát (intent_action_monitor) và một số hành động được phát sóng bởi AlarmManager
(intent_action_setup_alarm, v.v.).
Hai câu hỏi:
- Tại sao tôi không nhận được cảnh báo trên tất cả các máy thu?
- Tôi cần có những quyền gì để đặt cho người nhận muốn nhận dịch vụ hệ thống để sửa cảnh báo (Tôi hiểu nó là gì và tôi không muốn bất kỳ ai sử dụng bộ thu của mình)?
exported="false"
sẽ làm cho thu khởi động, thu wifi, thu báo động vv?
Tôi đã nghĩ đến việc sử dụng quyền tùy chỉnh vớiandroid:protectionLevel="signatureOrSystem"
nhưng các tài liệu khuyên chống lại cả hai số này protection level và custom permissions. Vậy làm thế nào tôi nên xử lý cảnh báo này?
Liên kết tới tài liệu và/hoặc một số mã sẽ được đánh giá cao.
Oh cảm ơn! chỉ để được rõ ràng hơn - "_the đầu tiên hai được thiết kế rõ ràng để được phát sóng bởi Android_" Tôi nghĩ như vậy nhưng họ vẫn còn xuất khẩu phải không? - Vì vậy, nếu tôi xóa các ý định vẫn còn là một cách ai đó có thể sử dụng các máy thu - sẽ thêm 'export =" false "' làm cho bất kỳ sự khác biệt? (Ngoài ra: Tôi cần các hành động nhưng làm rõ của bạn "Chỉ sử dụng khi bạn đang mong đợi hệ điều hành hoặc các ứng dụng của bên thứ ba bắt đầu Intent mình (thực thi một PendingIntent mà bạn tạo ra không tính)." rất hoan nghênh - +1) –
@Mr_and_Mrs_D: Bạn không nhận được cảnh báo về hai câu hỏi đầu tiên, vì vậy câu trả lời của tôi tập trung vào câu hỏi thứ ba. "Tôi nghĩ vậy nhưng chúng vẫn được xuất khẩu phải không?" -- Vâng. "Vì vậy, nếu tôi xóa các ý định vẫn còn là một cách ai đó có thể sử dụng các máy thu" - kể từ khi bạn không nhận được cảnh báo cho những người, để chúng một mình. – CommonsWare
Tôi tự hỏi làm cho quyền tùy chỉnh là hữu ích. Cũng giống như hành động của Intent. Tôi có thể sử dụng các công cụ dịch ngược để trích xuất tệp manifest.xml và đọc tên Hành động. Sau đó, tên cho phép cũng có thể phải đối mặt với cùng một điều ... – Yeung