2013-05-03 23 views
6

Tôi biết rằng cài đặt android: exported = "false" sẽ hạn chế các ứng dụng khác sử dụng/truy cập các thành phần ứng dụng của tôi.
Việc đặt thuộc tính này sẽ hạn chế hệ thống cũng như sử dụng/truy cập các thành phần của tôi không? tôi nghi ngờ.Android: export = "false" có hạn chế các cuộc gọi/truy cập hệ thống không?

ví dụ, tôi có người nhận sau:

<receiver 
     android:name="ConnectivityManager" 
     android:label="NetworkConnection" 
     android:exported = "false" > 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 

Máy thu được vẫn nhận được chương trình phát sóng từ hệ thống khi thay đổi trạng thái kết nối (on/của).

Điều này có nghĩa là hệ thống gọi/truy cập không bao giờ có thể dừng lại? Xin vui lòng minh họa.

+0

Bạn chỉ nhận được chương trình phát sóng nếu bạn chủ động yêu cầu nhận. Nếu bạn không muốn nó, tại sao bạn không gọi phương thức 'unregisterReceiver()'? – TactMayers

+1

Có, bạn phù hợp với câu hỏi thứ hai mà tôi đã hỏi. Tôi có thể setComponentEnabledSetting() hoặc unregisterReceiver() để vô hiệu hóa/giết người nhận. Nhưng mối quan tâm chính của tôi là "Android: export =" false "có hạn chế các cuộc gọi/truy cập hệ thống không?". – Strider007

Trả lời

3

Có, nếu được xuất = = false ", nó sẽ vẫn phản hồi các chương trình phát sóng của hệ thống chẳng hạn như thay đổi kết nối. Điều này rất dễ dàng để kiểm tra bằng cách sử dụng thiết bị thu sóng phát sóng ở trên và chế độ trên máy bay của bạn

3

Tài liệu trực tuyến của Google không mô tả rõ ràng điều này.

Từ kết quả thực, người nhận vẫn có thể được kích hoạt bởi phát sóng hệ thống ngay cả khi đặt được xuất = false ".

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