Có hai phần cho vấn đề này: cơ chế cho các ứng dụng giao tiếp nói rằng chúng có thể chia sẻ mọi thứ và cơ chế cho các ứng dụng có nội dung để chia sẻ. Tôi sẽ giải quyết từng cái một, nhưng trước tiên hãy ghi chú nhanh về ý định .
Ý định
Các ý trong Android là những gì được sử dụng để bắt đầu một ứng dụng. Nó có thể hoạt động như một phím tắt hoặc giống như một liên kết tệp Windows. Mục đích có thể chỉ định tên của ứng dụng để bắt đầu, nhưng nó không phải. Nó cũng có thể chỉ định hành động để thực hiện (ví dụ: "mở hoạt động chính của bạn", "xem URL này", "tạo mục nhập lịch") và loại MIME của đối tượng mà nó sẽ hành động (ví dụ: điều bạn muốn xem có loại hình ảnh / jpeg). Một số tên hành động dành riêng cho một ứng dụng cụ thể, nhưng nhiều tên được Android chuẩn hóa để cho phép các ứng dụng tương tác.
Bộ lọc ý định và ứng dụng truyền thông
Mỗi ứng dụng chỉ định các bộ lọc ý định để nói loại hành động nào nó có thể thực hiện. ví dụ: ứng dụng xem hình ảnh sẽ đăng ký bộ lọc ý định cho "xem URL này" trong đó loại MIME là "hình ảnh / *"; một trình duyệt web sẽ đăng ký một bộ lọc ý định cho "xem URL này" trong đó lược đồ URL là "http" hoặc "https". Để có thể chia sẻ mọi thứ, một ứng dụng đăng ký bộ lọc ý định cho mục đích "gửi", với một loại cụ thể (ví dụ: nếu nó chỉ có thể chia sẻ ảnh) hoặc cho bất kỳ loại nào.
Ứng dụng nội dung
Ứng dụng muốn chia sẻ một số nội dung sẽ tạo ra ý định với hành động "chia sẻ" và một URL trỏ đến nội dung cần chia sẻ. (Đây thường là URL "tạm thời" cung cấp cho ứng dụng nhận quyền truy cập tạm thời vào tệp trong bộ nhớ riêng của ứng dụng nội dung hoặc luồng được tạo bởi ứng dụng nội dung.) Nó không chỉ định tên của ứng dụng để xử lý ý định. Sau đó, nó đưa ra ý định đó cho khung Android và yêu cầu Android hiển thị hộp thoại chọn . Android so sánh ý định với các bộ lọc ý định từ tất cả các ứng dụng đã cài đặt và tạo danh sách và hiển thị nó cho người dùng. Khi người dùng chọn một ứng dụng cụ thể, Android sẽ khởi động ứng dụng đó và chuyển ý định đó. Ứng dụng sử dụng URL để lấy nội dung từ ứng dụng gốc.
Mới trong Marshmallow: Chia sẻ trực tiếp
Trong Marshmallow, có một cơ chế khác gọi là Chia sẻ trực tiếp . Điều này bổ sung cơ chế mục đích để bạn có thể chọn người hoặc nhóm để chia sẻ trực tiếp từ hộp thoại người chọn, bỏ qua bước bổ sung của "bạn muốn gửi cho ai". Điều này hoạt động hơi khác nhau: ứng dụng truyền thông phải cung cấp một dịch vụ. Khi ứng dụng có nội dung yêu cầu người chọn, Android sẽ khởi động dịch vụ cho từng ứng dụng có liên quan. Dịch vụ trả về một danh sách các mục tiêu chia sẻ có liên quan và Android sẽ tập hợp tất cả các danh sách riêng biệt đó vào danh sách được hiển thị trong hộp thoại.