يتيح إصدار Android 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
مع توفير الملفات التالية لميزات داعمة (تُعرف باسم واجهات برمجة التطبيقات المخفية في
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 استخدام الاختصارات. في حال كان لدى الشريك مشغّل خاص به، يجب أن يتيح هذا المشغّل استخدام الاختصارات أيضًا.
- عندما ينفِّذ المستخدم إيماءة معيّنة (مثل الضغط مع الاستمرار) على رمز تطبيق،
يجب أن يعرض مشغّل التطبيقات اختصارات البيان والديناميكية المرتبطة بكل رمز
لنشاط مشغّل التطبيقات.
يتم تحديد ترتيب ترتيب الاختصارات في Javadoc الخاص بـ ShorctutManager ضمن القسم "ترتيب عرض الاختصارات". على سبيل المثال، يمكنك عرض اختصارات البيان أولاً، ثم الاختصارات الديناميكية. يتم ترتيب الاختصارات حسب الترتيب في ترتيب تصاعدي ضمن كل مجموعة. - يجب أن يتمكّن المستخدم من سحب كل اختصار ديناميكي/مستند بيان التطبيق و "تثبيته" على الشاشة الرئيسية.
- من المفترض أن يتم الاحتفاظ بنسخة احتياطية من الاختصارات المثبَّتة واستعادتها. (اطّلِع على ملف javadoc لـ ShortcutManager للحصول على التفاصيل)
- من المفترض أن يؤدي إجراء "ردّ مضمّن" على الإشعار إلى استدعاء ShortcutManager.onApplicationActive داخليًا.
بالإضافة إلى ذلك، تتضمّن بعض تطبيقات "خدمات Google للأجهزة الجوّالة" (GMS) اختصارات. من المفترض أن يعرض مشغّل التطبيقات التابع لجهة التصنيع اختصارات لهذه التطبيقات، ومن الأفضل أن يتيح أيضًا تثبيت التطبيقات (أو إنشاء رمز اختصار).
اطّلِع على مصدر Launcher3 للحصول على تفاصيل حول كيفية التفاعل مع إطار العمل المتعلّق بالعمليات أعلاه.
التحقُّق
استخدِم اختبارات مجموعة أدوات اختبار التوافق (CTS) التالية لنظام التشغيل Android لضمان عمل إصدار الميزة (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