2013-08-08 26 views
5

Tôi tự hỏi liệu có thể tạo chương trình phát riêng tư không. Tôi thực sự đăng ký chương trình phát sóng trong hoạt động của mình và sử dụng phương thứcCách giới hạn phát sóng tới ứng dụng Android của riêng mình

sendOrderedBroadcast(broadcast); 

để gửi chương trình phát sóng. Nhưng, bây giờ, mục đích (broadcast) được sử dụng cho phương pháp này được định nghĩa như thế này:

Intent broadcast = new Intent("com.mypackage.broadcast"); 

Vì vậy, mỗi ứng dụng bên ngoài thực hiện kê khai tên gói này có thể lắng nghe những gì tôi đang gửi, và tôi không muốn .

Vì vậy, làm thế nào để làm điều này không thể, mà không ai có thể nghe phát sóng của tôi?

Trả lời

6

Tôi nghĩ bạn đang tìm kiếm LocalBroadcast Manager. Các tài liệu nói:

Đây là người trợ giúp đăng ký và gửi chương trình phát sóng Ý định đến các đối tượng địa phương trong quá trình của bạn. Điều này có một số lợi thế hơn khi gửi các chương trình phát sóng toàn cầu với sendBroadcast (Intent). Một trong số đó là dữ liệu bạn đang phát sẽ không rời khỏi ứng dụng của bạn, do đó, không cần phải lo lắng về việc rò rỉ dữ liệu cá nhân.`

Xem how to use LocalBroadcastManager? để biết thêm. Hy vọng nó sẽ giúp bạn.

+0

wow, nhanh thật, cảm ơn bạn rất nhiều, thực sự không tìm kiếm bằng từ khóa phù hợp. Cảm ơn một lần nữa @ Shobhit Puri, đó là chắc chắn những gì tôi đang tìm kiếm. – Bibu

+0

Vui vì nó đã giúp :) –

1

Để LocalBroadcast Manager hoạt động, ứng dụng sẽ chạy.

Để có một chiến lược chung để giới hạn các chương trình phát sóng Android cho ứng dụng của riêng bạn, chúng tôi có thể thực hiện như sau.

Intent intent = new Intent(); 
String packageName = context.getApplicationContext().getPackageName(); 
intent.setAction(packageName + "<MY_ACTION>"); 
context.sendBroadcast(intent); 

Vì gói ứng dụng sẽ vẫn duy nhất cho tất cả các ứng dụng trên Android, điều này sẽ giới hạn an toàn Broadcast tới ứng dụng của riêng bạn và bạn có thể đăng ký BroadcastReceivers trong AndroidManifest.xml.