Chia sẻ trực tiếp.

Tram Ho

Direct Share là tính năng cho phép ứng dụng chia sẻ nội dung đến các ứng dụng khác. Sau đó, người dùng có thể truy cập trực tiếp vào ứng dụng của bạn khi chia sẻ nội dung đến một ứng dụng khác.

Direct Share hoạt động với khái niệm Sharing Shortcuts. Ứng dụng đề xuất bản trước các mục tiêu có thể chia sẻ, Sharing Shortcuts đã xuất bản sẽ được hệ thống lưu giữ cho đến khi ứng dụng cập nhật chúng hoặc ứng dụng được gỡ cài đặt.
Khi được hiển thị cho người dùng, hệ thống sẽ xếp hạng mọi phím tắt có thể áp dụng bằng dịch vụ dự đoán, trong đó hiển thị các phím tắt có nhiều khả năng được sử dụng hơn.

Thiết lập và yêu cầu:

Để dùng tính năng này phải để complieSDK thấp nhất là 29.
Direct Share dùng Sharing Shortcuts nên phải tạo mội file shortcuts.xml

Tệp shortcuts.xml cần được khai báo trong một hoạt động có bộ lọc ý định được đặt thành hành động android.intent.action.MAIN và danh mục android.intent.category.LAUNCHER trong tệp AndroidManifest.xml.

Sử dụng ShortcutManager API

Khi các phần tử mục tiêu chia sẻ được xác định, ta cần xuất bản các phím tắt động phù hợp với các định nghĩa đó với API ShortcutManager. Các phím tắt chia sẻ vẫn tồn tại trong hệ thống cho đến khi chúng được cập nhật bởi cùng một ứng dụng hoặc ứng dụng được gỡ cài đặt.

build.gradle

SharingShortcutsManager là lớp phụ trách tương tác với ShortcutManager. Mỗi khi người dùng mở ứng dụng ta sẽ đẩy các phím tắt chia sẻ đã lưu.

MainActivity.kt

Ta có thể cấu hình các ứng dụng cùng loại với Direct Share

Ở đây mình dùng share kiểu text/plain.

SharingShortcutsManager.kt

Tạo danh sách có thể share.

Ứng dụng chỉ xuất bản bốn phím tắt do giới hạn phím tắt. Không bao giờ thêm nhiều phím tắt hơn những gì được định nghĩa trong ShortcutManagerCompat.getMaxShortcutCountPerActivity.

Để tạo tên và icon:

SharingShortcutsManager.kt

Nếu một lối tắt tồn tại lâu dài, nó có thể được lưu vào bộ nhớ đệm bởi các dịch vụ hệ thống khác nhau và có thể xuất hiện dưới dạng mục tiêu chia sẻ ngay cả khi nó chưa được ứng dụng hủy xuất bản hoặc xóa.

Publish sharing

SharingShortcutsManager.kt

AndroidManifest.xml

SendMessageActivity.kt

Và thành quả sau cùng.

Cảm ơn các bạn đã theo dõi

Code lab: https://developer.android.com/codelabs/android-direct-share#0

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo