ทางลัดของแอปพลิเคชัน

เวอร์ชัน Android 7.1.1 ช่วยให้นักพัฒนาแอปกำหนดทางลัดเฉพาะการดำเนินการในแอปของตนซึ่งจะแสดงใน Launcher ได้ แป้นพิมพ์ลัดของแอปเหล่านี้ช่วยให้ผู้ใช้เริ่มงานทั่วไปหรืองานที่แนะนำได้อย่างรวดเร็วภายในแอป

ทางลัดแต่ละรายการจะอ้างอิงถึง Intent ที่เปิดการดำเนินการที่เฉพาะเจาะจงในแอปเมื่อผู้ใช้เลือกทางลัด ตัวอย่างการดำเนินการที่คุณแสดงเป็นแป้นพิมพ์ลัดของแอปได้ ได้แก่

  • นำทางผู้ใช้ไปยังสถานที่หนึ่งๆ ในแอปแผนที่
  • ส่งข้อความถึงเพื่อนในแอปการสื่อสาร
  • การเล่นตอนถัดไปของรายการทีวีในแอปสื่อ
  • กำลังโหลดจุดบันทึกล่าสุดในแอปเล่นเกม

ตัวอย่างและแหล่งที่มา

คุณจะพบการใช้งานหลักของฟีเจอร์นี้ในไฟล์ต่อไปนี้

frameworks/base/services/core/java/com/android/server/policy/ShortcutManager.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutUser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutParser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutService.java
frameworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java
frameworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java
frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutServiceInternal.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

โดยใช้ไฟล์ต่อไปนี้ซึ่งให้ฟีเจอร์สนับสนุน (เรียกว่า API ที่ซ่อนอยู่ใน ShortcutManager.java)

packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java

ตัวอย่างเช่น Launcher เวอร์ชัน 3 ของโครงการโอเพนซอร์ส Android รองรับแป้นพิมพ์ลัดต่อไปนี้

packages/apps/Launcher3/

สุดท้าย ให้ดูไฟล์ต่อไปนี้สําหรับ Javadoc สาธารณะ

frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

การใช้งาน

AOSP Launcher3 รองรับทางลัดอยู่แล้ว ในกรณีที่พาร์ทเนอร์มีตัวเปิดแอปของตัวเอง ตัวเปิดแอปนั้นควรรองรับทางลัดด้วย

  • เมื่อผู้ใช้ใช้ท่าทางสัมผัสบางอย่าง (เช่น การกดค้าง) บนไอคอนแอป ตัวเปิดใช้ควรแสดงทางลัดแบบไดนามิกและไฟล์ Manifest ที่เชื่อมโยงกับไอคอนกิจกรรมของตัวเปิดใช้แต่ละรายการ
    ลำดับการจัดเรียงทางลัดจะกำหนดไว้ใน Javadoc ของ ShorctutManager ภายในส่วน "ลำดับการแสดงทางลัด" เช่น แสดงทางลัดไฟล์ Manifest ก่อน แล้วตามด้วยทางลัดแบบไดนามิก แป้นพิมพ์ลัดจะจัดเรียงตามลําดับจากน้อยไปมากภายในแต่ละกลุ่ม
  • ผู้ใช้ควรลากทางลัดแบบไดนามิก/ไฟล์ Manifest แต่ละรายการและ "ปักหมุด" ไว้ที่หน้าจอหลักได้
  • คุณควรสำรองข้อมูลและกู้คืนทางลัดที่ปักหมุดไว้ (ดูรายละเอียดใน javadoc ของ ShortcutManager)
  • การทำ "การตอบกลับในบทสนทนา" ในการแจ้งเตือนควรเรียกใช้ ShortcutManager.onApplicationActive ภายใน

นอกจากนี้ แอป Google Mobile Services (GMS) บางแอปยังมีแป้นพิมพ์ลัดด้วย โปรแกรมเปิดแอปของ OEM ควรแสดงทางลัดสำหรับแอปเหล่านั้น และควรรองรับ "การปักหมุด" (หรือการสร้างไอคอนทางลัด) ด้วย

ดูรายละเอียดเกี่ยวกับวิธีโต้ตอบกับเฟรมเวิร์กสําหรับการดำเนินการข้างต้นได้ที่แหล่งที่มาของ Launcher3

การตรวจสอบความถูกต้อง

ใช้การทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) ต่อไปนี้เพื่อให้แน่ใจว่าฟีเจอร์เวอร์ชันของคุณ (ShortcutManager และ LauncherApps) ทํางานตามที่ตั้งใจไว้

cts/tests/tests/shortcutmanager/
cts/hostsidetests/shortcuts/

และดูการทดสอบหน่วยสําหรับการใช้งาน AOSP ได้ที่นี่

frameworks/base/services/tests/servicestests/

ซึ่งรวมถึง

src/com/android/server/pm/ShortcutManagerTest*.java

คุณยังใช้การทดสอบ CTS Verifier สําหรับเครื่องมือจัดการทางลัดได้ด้วย โดยทําดังนี้

cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java