12

Tôi đã tạo một BroadcastReceiver, mà nhận được BOOT_COMPLETED.Android: OnBootReceiver: thu xuất khẩu không yêu cầu sự cho phép

Trong tôi AndroidManifest.xml Tôi đã thêm nó như vậy:

<receiver 
    android:name=".OnBootReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
    </intent-filter> 
</receiver> 

Tuy nhiên, tôi nhận được cảnh báo: thu xuất khẩu không yêu cầu sự cho phép. Tôi đã đọc về nó trên SO, nhưng tôi không hoàn toàn hiểu nó.

Vì vậy, ai đó có thể giải thích cho người mới bắt đầu này :) lý do tại sao tôi nhận được cảnh báo này, và phải làm gì chống lại nó (và tại sao)?

+0

nó chỉ phương tiện mà bất cứ ai có thể gọi nó, vì nó là công khai và không yêu cầu sự cho phép (người nhận có thể yêu cầu một sự cho phép cụ thể được gọi) – njzk2

+0

@ njzk2 nhưng không thêm nó làm cho nó ngừng hoạt động? Tôi nhớ tôi đã thử một lần và nó không làm việc nhưng mã của tôi có một số vấn đề vì vậy tôi không chắc chắn –

+0

@ njzk2 Vì vậy, thực sự, tôi không phải làm bất cứ điều gì chống lại nó? – Xander

Trả lời

5

Bạn có thể loại bỏ cảnh báo này bằng cách thêm android:exported="false" cho thẻ nhận (xem câu trả lời này: https://stackoverflow.com/a/11526028/757073)

+7

Và nếu bạn thiết lập xuất khẩu sang sai, có thể nó vẫn được gọi khi khởi động hoàn thành? – Xander

7

Cảnh báo "xuất khẩu nhận không yêu cầu sự cho phép" có nghĩa là, Bạn có một ý định lọc với một số hành động (điều này có nghĩa là bạn đã đặt android: exports = "true" và giờ đây bạn có thể nhận các chương trình phát sóng từ ANY đài phát thanh bên ngoài ứng dụng của bạn) Vì nó có thể nhận các chương trình phát sóng từ các đài phát thanh bên ngoài ứng dụng của bạn, nó cảnh báo bạn nói "Hey, bạn có chắc BẤT CỨ bro adcaster có thể gọi bạn? Theo ý kiến ​​của tôi, nó là tốt hơn nếu bạn cho phép chỉ những đài truyền hình để gọi bạn rằng có sự cho phép bạn đã đặt cho máy thu này qua android: phép "

Hy vọng điều này là rõ ràng !!!

+0

nếu nó chỉ là một phần của API? như trong ví dụ này, khởi động hoàn thành? hoặc giống như khi một hình ảnh máy ảnh mới được thực hiện (sử dụng này: http://java.labsoft.dcc.ufmg.br/apiminer/static/docs/reference/android/hardware/Camera.html#ACTION_NEW_PICTURE)? –

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