![](https://developer.android.com/static/training/sharing/direct-share-targets.png?authuser=19&hl=th)
ใช้เป้าหมายการแชร์โดยตรงเพื่อให้ผู้ใช้แอปอื่นสะดวกและรวดเร็วยิ่งขึ้น เพื่อแชร์ URL, รูปภาพ หรือข้อมูลประเภทอื่นๆ กับแอปของคุณ ผลงาน Direct Share ด้วยการนำเสนอรายชื่อติดต่อจากแอปรับส่งข้อความและแอปโซเชียลโดยตรงใน Android Sharesheet โดยที่ผู้ใช้ไม่ต้องเลือกแอปแล้วค้นหารายชื่อติดต่อ
ShortcutManagerCompat
เป็น AndroidX API ที่ให้ทางลัดการแชร์ และที่ย้อนกลับ
เข้ากันได้กับ ChooserTargetService
API ที่เลิกใช้งานแล้ว แนะนำให้ใช้วิธีนี้
วิธีเผยแพร่ทั้งทางลัดการแชร์และ ChooserTargets
สำหรับคำแนะนำ
ดูใช้ AndroidX เพื่อระบุทั้งทางลัดการแชร์และ ChooserTargets
ในหน้านี้
เผยแพร่เป้าหมายการแชร์โดยตรง
แถวการแชร์โดยตรงของ Sharesheet จะแสดงเฉพาะทางลัดแบบไดนามิกจาก การแชร์ทางลัด API ทำตามขั้นตอนต่อไปนี้เพื่อเผยแพร่ Direct Share เป้าหมาย
ประกาศองค์ประกอบ
share-target
ในไฟล์ทรัพยากร XML ของแอป<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <share-target android:targetClass="com.example.android.sharingshortcuts.SendMessageActivity"> <data android:mimeType="text/plain" /> <category android:name="com.example.android.sharingshortcuts.category.TEXT_SHARE_TARGET" /> </share-target> </shortcuts>
เมื่อเริ่มต้นแอป ให้ใช้
setDynamicShortcuts
เพื่อเรียงลำดับทางลัดแบบไดนามิกตามความสำคัญดัชนีที่ต่ำกว่าบ่งบอกถึงความสำคัญที่มากกว่า หากคุณต้องติดต่อสื่อสาร ก็เป็นการสนทนายอดนิยม โดยเรียงลำดับตามความใหม่ตามที่ปรากฏใน แอปของคุณ อย่าเผยแพร่ทางลัดที่ไม่มีอัปเดต การสนทนาที่ไม่มี กิจกรรมของผู้ใช้ในช่วง 30 วันที่ผ่านมาถือว่าเป็นกิจกรรมไม่มีอัปเดต
Kotlin
ShortcutManagerCompat.setDynamicShortcuts(myContext, listOf(shortcut1, shortcut2, ..))
Java
List<ShortcutInfoCompat> shortcuts = new ArrayList<>(); shortcuts.add(shortcut1); shortcuts.add(shortcut2); ... ShortcutManagerCompat.setDynamicShortcuts(myContext, shortcuts);
หากคุณพัฒนาแอปการสื่อสาร ให้รายงานการใช้งานทางลัดผ่าน
pushDynamicShortcut
ทันทีทุกครั้งที่ผู้ใช้ รับหรือส่งข้อความถึงรายชื่อติดต่อ ดูรายงานการใช้ทางลัดสำหรับ แอปการสื่อสารในหน้านี้สำหรับข้อมูลเพิ่มเติม ตัวอย่างเช่น รายงานการใช้งานสำหรับข้อความที่ส่งโดยผู้ใช้โดย ระบุการเชื่อมโยงความสามารถในทางลัดโดยใช้ShortcutInfoCompat.Builder#addCapabilityBinding
ที่มีความสามารถactions.intent.SEND_MESSAGE
Kotlin
val shortcutInfo = ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(firstName) .setLongLabel(fullName) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.SEND_MESSAGE").build() ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo)
Java
ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(firstName) .setLongLabel(fullName) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.SEND_MESSAGE") .build(); ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo);
หากผู้ใช้ลบรายชื่อติดต่อ ให้ใช้
removeLongLivedShortcut
แนะนำให้ใช้วิธีนี้ วิธีนำทางลัดออก ไม่ว่าระบบจะแคชทางลัดไว้หรือไม่ก็ตาม บริการต่างๆ ข้อมูลโค้ดต่อไปนี้จะแสดงตัวอย่างวิธีการKotlin
val deleteShortcutId = "..." ShortcutManagerCompat.removeLongLivedShortcuts(myContext, listOf(deleteShortcutId))
Java
String deleteShortcutId = "..."; ShortcutManagerCompat.removeLongLivedShortcuts( myContext, Arrays.asList(deleteShortcutId));
ปรับปรุงการจัดอันดับของเป้าหมายการแชร์โดยตรง
Sharesheet ของ Android จะแสดงจำนวนเป้าหมายการแชร์โดยตรงคงที่ เหล่านี้ คำแนะนำจะจัดเรียงตามอันดับ คุณสามารถปรับปรุงการจัดอันดับ โดยทำตามขั้นตอนต่อไปนี้
- ตรวจสอบว่า
shortcutIds
ทั้งหมดไม่ซ้ำกันและไม่นำมาใช้ซ้ำสำหรับเป้าหมายต่างๆ กัน - การโทรจะทำให้ทางลัดใช้งานได้นาน
setLongLived(true)
- สําหรับแป้นพิมพ์ลัดที่เกี่ยวข้องกับการสนทนา ให้รายงานการใช้ทางลัด
สำหรับข้อความขาออกและข้อความขาเข้าโดยเผยแพร่ทางลัดที่เกี่ยวข้องอีกครั้ง
ถึง
ShortcutManagerCompat.pushDynamicShortcut
โปรดดูรายงานการใช้ทางลัดสำหรับแอปการสื่อสารในหน้านี้ เพื่อดูรายละเอียด - หลีกเลี่ยงการระบุเป้าหมาย Direct Share ที่ไม่เกี่ยวข้องหรือไม่มีอัปเดต ตัวอย่างเช่น รายชื่อติดต่อที่ผู้ใช้ไม่ได้ส่งข้อความถึงในช่วง 30 วันที่ผ่านมา
- สําหรับแอป SMS ให้หลีกเลี่ยงการใส่ทางลัดสําหรับรหัสสั้นๆ หรือการสนทนา ถูกระบุว่าอาจเป็นสแปม ผู้ใช้มักมีแนวโน้มที่จะแชร์ การสนทนาเหล่านั้น
- เรียกใช้
setCategories()
เพื่อเชื่อมโยงทางลัดกับ เหมาะสมmimeType
ตัวอย่างเช่น สําหรับแอป SMS หากผู้ติดต่อไม่ได้เปิดใช้ RCS หรือ MMS คุณก็จะไม่ทำสิ่งต่อไปนี้ เชื่อมโยงทางลัดที่สอดคล้องกันกับประเภท MIME ที่ไม่ใช่ข้อความ เช่นimage/*
และvideo/*
- สำหรับการสนทนาหนึ่งๆ เมื่อมีการพุชทางลัดแบบไดนามิกและการใช้งานเป็น รายงานแล้ว ไม่ต้องเปลี่ยนรหัสทางลัด วิธีนี้ช่วยให้มั่นใจได้ว่าข้อมูลการใช้งานจะคงอยู่ สำหรับการจัดอันดับ
หากผู้ใช้แตะเป้าหมาย Direct Share แอปของคุณต้องนำผู้ใช้ไปยัง UI ที่ สามารถดำเนินการอย่างใดอย่างหนึ่งได้โดยตรงในเรื่องของเป้าหมาย ไม่ต้องนำเสนอ ผู้ใช้อย่างชัดเจนด้วย UI ที่ชัดเจน และอย่าวางใน UI ที่ไม่เกี่ยวข้องกับ ที่แตะเป้าหมาย เช่น ในแอปรับส่งข้อความ ให้แตะการแชร์โดยตรง นำผู้ใช้ไปยังมุมมองการสนทนากับบุคคลที่เลือก สามารถมองเห็นแป้นพิมพ์และข้อความที่มีการเติมข้อมูลที่แชร์ไว้ล่วงหน้าแล้ว
API ทางลัดการแชร์
เริ่มตั้งแต่ Android 10 (API ระดับ 29)
ShortcutInfo.Builder
ได้เพิ่มวิธีการและการเพิ่มประสิทธิภาพ
ที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายการแชร์
setCategories()
- ใน Android 10 เป็นต้นไป หมวดหมู่จะใช้เพื่อกรองทางลัดที่ สามารถจัดการการแชร์ Intent หรือการดำเนินการต่างๆ ได้ ดูประกาศการแชร์ เป้าหมายเพื่อดูรายละเอียด ต้องกรอกข้อมูลในช่องนี้สำหรับทางลัด ที่จะใช้เป็นเป้าหมายการแชร์
setLongLived()
ระบุว่าทางลัดถูกต้องหรือไม่เมื่อเลิกเผยแพร่แล้ว หรือ ทำให้แอปมองไม่เห็น (เป็นทางลัดแบบไดนามิกหรือทางลัดที่ปักหมุดไว้) หากทางลัด ใช้งานได้นาน บริการของระบบต่างๆ อาจถูกแคชไว้ เลิกเผยแพร่เป็นทางลัดแบบไดนามิกแล้ว
การทำให้ทางลัดใช้งานได้ยาวนานช่วยปรับปรุงการจัดอันดับได้ ดูรับสิ่งที่ดีที่สุด การจัดอันดับเพื่อดูรายละเอียด
setShortLabel()
,setLongLabel()
เมื่อเผยแพร่ทางลัดไปยังผู้ใช้แต่ละราย โปรดป้อนข้อมูลแบบเต็มของบุคคลดังกล่าว ชื่อใน
setLongLabel()
และชื่อย่ออื่นๆ เช่น ชื่อเล่นหรือชื่อ ในsetShortLabel()
ดูตัวอย่างการเผยแพร่ทางลัดการแชร์บน GitHub
ให้ภาพทางลัด
หากต้องการสร้างทางลัดการแชร์ คุณจะต้องเพิ่มรูปภาพผ่าน setIcon()
ทางลัดการแชร์อาจปรากฏในแพลตฟอร์มต่างๆ ของระบบและอาจมีการปรับเปลี่ยนรูปแบบ
นอกจากนี้ อุปกรณ์บางรุ่นที่ใช้ Android เวอร์ชัน 7, 8 หรือ 9 (API ระดับ 25
26, 27 และ 28) อาจแสดงไอคอนบิตแมปเท่านั้นโดยไม่มีพื้นหลัง
จะลดคอนทราสต์ลงอย่างมาก วิธีตรวจสอบว่าทางลัดมีลักษณะตามที่ต้องการ
ให้บิตแมปแบบปรับอัตโนมัติได้โดยใช้ IconCompat.createWithAdaptiveBitmap()
ตรวจสอบว่าบิตแมปแบบปรับอัตโนมัติเป็นไปตามหลักเกณฑ์และมิติข้อมูลเดียวกับที่กำหนดไว้สำหรับไอคอนแบบปรับอัตโนมัติ วิธีที่นิยมใช้กันมากที่สุดในการดำเนินการนี้คือ การปรับขนาดบิตแมปรูปสี่เหลี่ยมจัตุรัสตาม 72x72 dp และอยู่ตรงกลางภายในผืนผ้าใบโปร่งใสขนาด 108x108 dp หากไอคอนของคุณ ครอบคลุมพื้นที่ที่โปร่งใส คุณจำเป็นต้องใส่สีพื้นหลังด้วย หรือไม่เช่นนั้น ส่วนที่โปร่งใสจะปรากฏเป็นสีดำ
อย่าปกปิดรูปภาพตามรูปร่างที่เจาะจง ตัวอย่างเช่น ก่อนที่จะ
Android 10 (API ระดับ 29) มักจะให้รูปโปรไฟล์ผู้ใช้สำหรับการแชร์โดยตรง
ChooserTarget
ที่ถูกมาสก์เป็นแวดวง Sharesheet ของ Android และอื่นๆ
แพลตฟอร์มของระบบใน Android 10 ได้กำหนดรูปร่างและธีมภาพทางลัด
วิธีที่แนะนำในการจัดเตรียมทางลัดการแชร์ผ่าน
ShortcutManagerCompat
กำหนดรูปแบบ Backcompat Direct Share ChooserTarget
วัตถุไปยัง
เพื่อคุณ
ประกาศเป้าหมายการแชร์
คุณต้องประกาศเป้าหมายการแชร์ในไฟล์ทรัพยากรของแอป ซึ่งคล้ายกับคำจำกัดความของทางลัดแบบคงที่ เพิ่มการแชร์
การกำหนดกลุ่มเป้าหมายภายในองค์ประกอบราก <shortcuts>
ในไฟล์ทรัพยากร
พร้อมกับคำจำกัดความทางลัดแบบคงที่อื่นๆ องค์ประกอบ <share-targets>
แต่ละรายการ
มีข้อมูลเกี่ยวกับประเภทข้อมูลที่แชร์ หมวดหมู่ที่ตรงกัน และ
คลาสเป้าหมายที่จะจัดการกับความตั้งใจในการแชร์ โค้ด XML มีลักษณะบางอย่าง
ดังนี้
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <share-target android:targetClass="com.example.android.sharingshortcuts.SendMessageActivity"> <data android:mimeType="text/plain" /> <category android:name="com.example.android.sharingshortcuts.category.TEXT_SHARE_TARGET" /> </share-target> </shortcuts>
องค์ประกอบข้อมูลในเป้าหมายการแชร์คล้ายกับข้อกำหนดในการจัดทำข้อมูลในตัวกรอง Intent เป้าหมายการแชร์แต่ละรายการอาจมี หลายหมวดหมู่ ซึ่งใช้เพื่อจับคู่ทางลัดที่เผยแพร่ของแอปเท่านั้น พร้อมคำจำกัดความเป้าหมายการแชร์ หมวดหมู่อาจกำหนดแอปใดๆ ก็ได้ตามใจชอบ
ในกรณีที่ผู้ใช้เลือกทางลัดการแชร์ใน Android Sharesheet ที่ ตรงกับตัวอย่างส่วนแบ่งเป้าหมายข้างต้น แอปจะได้รับข้อมูลต่อไปนี้ ความตั้งใจในการแชร์:
Action: Intent.ACTION_SEND ComponentName: {com.example.android.sharingshortcuts / com.example.android.sharingshortcuts.SendMessageActivity} Data: Uri to the shared content EXTRA_SHORTCUT_ID: <ID of the selected shortcut>
หากผู้ใช้เปิดเป้าหมายการแชร์จากทางลัด Launcher แอปจะได้รับ
ที่สร้างขึ้นเมื่อเพิ่มทางลัดการแชร์ลงใน
ทางลัดManagerCompat
Intent.EXTRA_SHORTCUT_ID
จะไม่แสดงขึ้นเนื่องจากบุคคลนั้นไม่ได้เจตนาอะไร
และคุณจะต้องส่งเอกสารด้วยตนเองหากจำเป็น
รายงานการใช้ทางลัดสำหรับแอปการสื่อสาร
ถ้าคุณกำลังพัฒนาแอปการสื่อสาร คุณสามารถปรับปรุงอันดับของคุณใน
Android Sharesheet โดยรายงานการใช้งานทั้งข้อความขาออกและข้อความขาเข้า
โดยเผยแพร่แป้นพิมพ์ลัดการสนทนาที่แสดงข้อมูลติดต่อผ่าน
ShortcutManagerCompat.pushDynamicShortcut
การใช้งานทางลัดและการเชื่อมโยงความสามารถใช้ได้กับ Android 5.0 แบบย้อนหลัง (API 21)
รายงานการใช้ทางลัดสำหรับข้อความขาออก
การใช้งานการรายงานสำหรับข้อความที่ส่งโดยผู้ใช้นั้นทำงานคล้ายกับ คลิกลิงก์ "ส่ง" หลังจากสร้างข้อความ
หากต้องการทริกเกอร์การรายงานการใช้งาน ให้ระบุการเชื่อมโยงความสามารถในทางลัด
จนถึง ShortcutInfoCompat.Builder#addCapabilityBinding
ที่มีความสามารถ actions.intent.SEND_MESSAGE
Kotlin
val shortcutInfo = ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(firstName) .setLongLabel(fullName) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.SEND_MESSAGE").build() ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo)
Java
ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(firstName) .setLongLabel(fullName) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.SEND_MESSAGE") .build(); ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo);
หากข้อความขาออกใช้สำหรับแชทเป็นกลุ่ม คุณต้องเพิ่ม Audience
ด้วย
เป็น recipient
ประเภทที่เชื่อมโยงกับความสามารถ
Kotlin
val shortcutInfo = ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(groupShortTitle) .setLongLabel(groupLongTitle) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.SEND_MESSAGE", "message.recipient.@type", listOf("Audience")).build() ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo)
Java
ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(groupShortTitle) .setLongLabel(groupLongTitle) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.SEND_MESSAGE", "message.recipient.@type", Arrays.asList("Audience")) .build(); ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo);
รายงานการใช้ทางลัดสำหรับข้อความขาเข้า
หากต้องการเรียกใช้การรายงานการใช้งานเมื่อผู้ใช้ได้รับข้อความ เช่น SMS
ข้อความแชท อีเมล หรือการแจ้งเตือน คุณต้องระบุความสามารถเพิ่มเติม
การเชื่อมโยงในทางลัดผ่าน
ShortcutInfoCompat.Builder#addCapabilityBinding
ที่มี
ความสามารถ actions.intent.RECEIVE_MESSAGE
Kotlin
val shortcutInfo = ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(firstName) .setLongLabel(fullName) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.RECEIVE_MESSAGE").build() ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo)
Java
ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(firstName) .setLongLabel(fullName) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.RECEIVE_MESSAGE") .build(); ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo);
หากข้อความขาเข้ามาจากแชทเป็นกลุ่ม คุณต้องเพิ่ม Audience
ด้วย
เป็นประเภท sender
จะเกี่ยวข้องกับความสามารถนี้
Kotlin
val shortcutInfo = ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(groupShortTitle) .setLongLabel(groupLongTitle) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.RECEIVE_MESSAGE", "message.sender.@type", listOf("Audience")).build() ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo)
Java
ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(myContext, staticConversationIdentifier) ... .setShortLabel(groupShortTitle) .setLongLabel(groupLongTitle) .setCategories(matchedCategories) .setLongLived(true) .addCapabilityBinding("actions.intent.RECEIVE_MESSAGE", "message.sender.@type", Arrays.asList("Audience")) .build(); ShortcutManagerCompat.pushDynamicShortcut(myContext, shortcutInfo);
ใช้ AndroidX เพื่อระบุทั้งทางลัดการแชร์และ ChooserTargets
เพื่อให้สามารถทำงานกับไลบรารีความเข้ากันได้ของ AndroidX ไฟล์ Manifest ของแอป
ต้องมีชุดตัวเลือกตัวเลือกเป้าหมาย-บริการเมตาและตัวกรอง-ความตั้งใจ โปรดดู
ChooserTargetService
Direct Share API ปัจจุบัน
มีการประกาศบริการนี้ในไลบรารีความเข้ากันได้แล้ว ดังนั้นผู้ใช้จึง ไม่จำเป็นต้องประกาศบริการในไฟล์ Manifest ของแอป อย่างไรก็ตาม ลิงก์จาก กิจกรรมการแชร์กับบริการต้องนำไปพิจารณาในฐานะเป้าหมายของผู้เลือก
ในตัวอย่างต่อไปนี้ การใช้งาน ChooserTargetService
คือ
androidx.core.content.pm.ChooserTargetServiceCompat
ซึ่งมีการกำหนดไว้แล้ว
ใน AndroidX
<activity android:name=".SendMessageActivity" android:label="@string/app_name" android:theme="@style/SharingShortcutsDialogTheme"> <!-- This activity can respond to Intents of type SEND --> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> <!-- Only needed if you import the sharetarget AndroidX library that provides backwards compatibility with the old DirectShare API. The activity that receives the Sharing Shortcut intent needs to be taken into account with this chooser target provider. --> <meta-data android:name="android.service.chooser.chooser_target_service" android:value="androidx.sharetarget.ChooserTargetServiceCompat" /> </activity>
คำถามที่พบบ่อยเกี่ยวกับทางลัดในการแชร์
ระบบจัดเก็บข้อมูลการใช้ทางลัดอย่างไรและออกจากอุปกรณ์อย่างไร
ระบบจะจัดเก็บทางลัดทั้งหมดไว้ในอุปกรณ์ในไดเรกทอรีข้อมูลระบบใน พาร์ติชันดิสก์ที่เข้ารหัส ข้อมูลในทางลัด เช่น ไอคอน Intent และชื่อของผู้คนและทรัพยากรจะเข้าถึงได้โดยบริการของระบบและ แอปเดียวกับที่เผยแพร่ทางลัดนั้น
การแชร์โดยตรงมีประวัติอย่างไร
เราได้เปิดตัว Direct Share ใน Android 6.0 (API ระดับ 23) เพื่ออนุญาตให้แอปทำสิ่งต่อไปนี้
ระบุออบเจ็กต์ ChooserTarget
รายการผ่าน ChooserTargetService
ผลลัพธ์คือ
ดึงข้อมูลแบบตอบสนองตามคำขอ ทำให้เป้าหมายใช้เวลาโหลดช้า
ใน Android 10 (API ระดับ 29) เราได้แทนที่ ChooserTargetService
Direct
แชร์ API ด้วยตัวเลือกการแชร์ ทางลัด API ใหม่ แทนการดึงข้อมูลผลลัพธ์
แบบตอบสนองตามคำขอ API ทางลัดการแชร์ช่วยให้แอปเผยแพร่ Direct Share ได้
เป้าหมายล่วงหน้า การทำเช่นนี้ช่วยให้กระบวนการดึงข้อมูลการแชร์โดยตรงเร็วขึ้นอย่างรวดเร็ว
เมื่อเตรียม ShareSheet การแชร์โดยตรงของ ChooserTargetService
จะยังคงทำงานต่อไป แต่ระบบจัดอันดับเป้าหมายที่มี
ด้วยวิธีนี้ จะต่ำกว่าเป้าหมายใดก็ตามที่ใช้ API ทางลัดการแชร์
Android 11 (API ระดับ 30) เลิกใช้งานบริการ ChooserTargetService
และ
API ทางลัดการแชร์เป็นวิธีเดียวในการเสนอเป้าหมายการแชร์โดยตรง
ทางลัดที่เผยแพร่สำหรับเป้าหมายการแชร์ต่างจาก Launcher อย่างไร แป้นพิมพ์ลัด (การใช้งานทั่วไปของแป้นพิมพ์ลัดเมื่อกดไอคอนแอปค้างใน Launcher)
แป้นพิมพ์ลัดที่เผยแพร่สำหรับ "แชร์เป้าหมาย" ก็ยังคงเป็น Launcher และจะแสดงในเมนูเมื่อกดไอคอนของแอปค้างไว้ จำนวนแป้นพิมพ์ลัดสูงสุดต่อกิจกรรมจะมีผลกับจำนวน ทางลัดที่แอปกำลังเผยแพร่ (แชร์เป้าหมายและทางลัด Launcher เดิม รวมกัน)
คำแนะนำเกี่ยวกับจำนวนแป้นพิมพ์ลัดการแชร์ที่ควรเผยแพร่
จำนวนทางลัดการแชร์จะจำกัดไว้ที่ขีดจำกัดแบบไดนามิกของเดิม
แป้นพิมพ์ลัดที่ใช้ได้ผ่านทาง
getMaxShortcutCountPerActivity(android.content.Context)
ผู้เผยแพร่โฆษณาสามารถเผยแพร่
ให้ถึงขีดจำกัดนั้นแต่ต้องจำไว้ว่าคุณสามารถมองเห็นทางลัดการแชร์ได้
ในตัวเปิดแอป ให้กดค้างในชีตการแชร์ ตัวเปิดแอปส่วนใหญ่เปิดอยู่
กดค้างเพื่อแสดงทางลัดสูงสุด 4 หรือ 5 รายการในโหมดแนวตั้ง และ
8 ในโหมดแนวนอน ดู
คำถามที่พบบ่อย
เพื่อดูรายละเอียดเพิ่มเติมและคําแนะนําเกี่ยวกับทางลัดการแชร์