2010-08-26 5 views
5

Tôi đã viết Ứng dụng Android và tệp .APK được tạo mà tôi đã tải lên trong Android Market. Vì vậy, một Người dùng có thể tải xuống gói ứng dụng đó và cài đặt trong thiết bị của mình. Làm cách nào để hạn chế gói ứng dụng của tôi khởi chạy, nếu anh ta gọi từ ứng dụng khác thông qua Intent. Điều đó có nghĩa là đơn đăng ký của tôi không được trả lời bất kỳ ý định nào từ các Ứng dụng bên ngoài khác.Ứng dụng Android KHÔNG được khởi chạy khi nhận Intent

Có cách nào có thể để hạn chế việc khởi chạy ứng dụng của tôi từ ý định từ ứng dụng khác.? Tôi sẽ chờ để trả lời. Cảm ơn trước,

Trả lời

3

Hãy thử đặt android: xuất khẩu = "false" cho tất cả các hoạt động quy định tại AndroidManifest.xml

Đó là từ mô tả yếu tố hoạt động:

android: xuất khẩu hay không hoạt động này có thể được khởi chạy bởi các thành phần của các ứng dụng khác - "true" nếu nó có thể, và "false" nếu không. Nếu "sai", hoạt động chỉ có thể được khởi chạy bởi các thành phần của cùng ứng dụng hoặc ứng dụng có cùng ID người dùng. Giá trị mặc định tùy thuộc vào việc hoạt động có chứa bộ lọc ý định hay không. Sự vắng mặt của bất kỳ bộ lọc có nghĩa là các hoạt động có thể được gọi chỉ bằng cách xác định tên lớp chính xác của nó. Điều này ngụ ý rằng hoạt động này chỉ dành cho việc sử dụng nội bộ ứng dụng (vì những người khác sẽ không biết tên lớp). Vì vậy, trong trường hợp này, giá trị mặc định là "false". Mặt khác, sự hiện diện của ít nhất một bộ lọc ngụ ý rằng hoạt động được thiết kế để sử dụng bên ngoài, vì vậy giá trị mặc định là "true". Thuộc tính này không phải là cách duy nhất để hạn chế tiếp xúc của một hoạt động với các ứng dụng khác. Bạn cũng có thể sử dụng quyền hạn chế các thực thể bên ngoài có thể gọi hoạt động (xem thuộc tính quyền).

Cũng ở đây là các đoạn văn ngắn về quyền ứng dụng https://developer.android.com/training/articles/security-tips.html Tôi đoán bạn có thể sử dụng điều đó để hạn chế quyền truy cập vào ứng dụng của mình.

+2

Ngoại trừ việc thực hiện điều này có nghĩa là màn hình chính sẽ không thể khởi chạy ứng dụng. – CommonsWare

+0

Có, nếu tôi keept android: được xuất thành true, Màn hình chính không thể khởi chạy ứng dụng. Sau đó, tôi nên tiến hành như thế nào để đạt được yêu cầu của mình? Cảm ơn bạn đã nâng cao –

+0

Đọc về các quyền, có vẻ đúng hơn. –