نسخه اندروید 7.1.1 به توسعه دهندگان این امکان را می دهد که میانبرهای مخصوص عمل را در برنامه های خود تعریف کنند که می توانند در یک راه اندازی نمایش داده شوند. این میانبرهای برنامه به کاربران اجازه می دهد تا به سرعت کارهای رایج یا توصیه شده را در یک برنامه شروع کنند.
هر میانبر به هدفی اشاره می کند که وقتی کاربران میانبر را انتخاب می کنند، اقدام خاصی را در برنامه اجرا می کند. نمونه هایی از اقداماتی که می توانید به عنوان میانبر برنامه بیان کنید عبارتند از:
- هدایت کاربران به یک مکان خاص در یک برنامه نقشه برداری
- ارسال پیام به یک دوست در یک برنامه ارتباطی
- پخش قسمت بعدی یک برنامه تلویزیونی در یک برنامه رسانه
- بارگیری آخرین نقطه ذخیره در یک برنامه بازی
مثال ها و منبع
پیاده سازی اولیه این ویژگی را می توانید در فایل های زیر بیابید:
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
و به عنوان مثال، نسخه 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 قبلاً از میانبرها پشتیبانی می کند. در مواردی که یک شریک راهانداز خود را دارد، آن راهانداز باید از میانبرها نیز پشتیبانی کند.
- هنگامی که کاربر یک حرکت خاص (مثلاً فشار طولانی) را روی نماد برنامه انجام میدهد، راهانداز باید میانبرهای پویا و آشکار مربوط به هر نماد فعالیت راهانداز را نشان دهد.
ترتیب مرتب سازی میانبر در ShortcutManager Javadoc در قسمت "Shortcut Display Order" تعریف شده است. برای مثال ابتدا میانبرهای مانیفست و سپس میانبرهای پویا را نشان دهید. میانبرها بر اساس رتبه به ترتیب صعودی در هر گروه مرتب شده اند. - کاربر باید بتواند هر میانبر پویا/مانیفست را بکشد و آن را به صفحه اصلی "پین" کند.
- میانبرهای پین شده باید پشتیبان گرفته و بازیابی شوند. (برای جزئیات به Javadoc ShortcutManager مراجعه کنید)
- انجام "پاسخ درون خطی" در Notification باید به صورت داخلی با ShortcutManager.onApplicationActive تماس بگیرید.
علاوه بر این، برخی از برنامههای خدمات تلفن همراه Google (GMS) دارای میانبر هستند. راهانداز OEM باید میانبرهایی را برای آنها نشان دهد و در حالت ایدهآل از " پین کردن " (یا ایجاد نماد میانبر) نیز پشتیبانی کند.
برای جزئیات بیشتر در مورد نحوه تعامل با چارچوب برای عملیات فوق، به منبع Launcher3 مراجعه کنید.
اعتبار سنجی
از تستهای مجموعه تست سازگاری Android (CTS) زیر استفاده کنید تا مطمئن شوید که نسخه شما از ویژگی (مدیر Shortcut و 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