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-এ লুকানো API বলা হয়):
packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
যেমন, 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-এ আগে থেকেই শর্টকাট কাজ করে। যেসব ক্ষেত্রে পার্টনারের নিজস্ব লঞ্চার আছে, সেই লঞ্চারেও শর্টকাট কাজ করতে হবে।
- ব্যবহারকারী অ্যাপ আইকনে নির্দিষ্ট জেসচার (যেমন, কিছুক্ষণ প্রেস করে রাখা) পারফর্ম করলে,
লঞ্চারকে প্রতিটি
লঞ্চার অ্যাক্টিভিটি আইকনের সাথে যুক্ত ডায়নামিক ও ম্যানিফেস্ট শর্টকাট দেখাতে হবে।
শর্টকাট সাজানোর ক্রম ShorctutManager Javadoc-এর "শর্টকাট দেখানোর ক্রম" বিভাগে উল্লেখ করা আছে। যেমন, প্রথমে ম্যানিফেস্ট শর্টকাট দেখান, তারপর ডায়নামিক শর্টকাট। প্রতিটি গ্রুপের মধ্যে শর্টকাটগুলি র্যাঙ্ক অনুযায়ী ছোট থেকে বড় ক্রমানুসারে সাজানো হয়। - ব্যবহারকারীকে প্রতিটি ডায়নামিক/ম্যানিফেস্ট শর্টকাট টেনে এনে হোম স্ক্রিনে "পিন" করতে পারতে হবে।
- পিন করা শর্টকাটের ব্যাক-আপ নিয়ে তা ফিরিয়ে আনা উচিত। (বিস্তারিত জানতে ShortcutManager-এর javadoc দেখুন)
- বিজ্ঞপ্তিতে "ইনলাইন উত্তর" দিলে ইন্টার্নালি ShortcutManager.onApplicationActive কল করা উচিত।
এছাড়াও, কিছু Google মোবাইল পরিষেবা (GMS) অ্যাপে শর্টকাট আছে। OEM লঞ্চারকে সেগুলির শর্টকাট দেখাতে হবে এবং আদর্শভাবে "পিন করা" (বা শর্টকাট আইকন তৈরি করা)ও কাজ করতে হবে।
উপরের অপারেশনগুলির জন্য ফ্রেমওয়ার্কের সাথে কীভাবে ইন্টারঅ্যাক্ট করতে হয় তার বিশদ বিবরণের জন্য Launcher3 সোর্স দেখুন।
যাচাইকরণ
আপনার ফিচারের (ShortcutManager ও LauncherApps) ভার্সনটি যেভাবে কাজ করার কথা সেইভাবে কাজ করছে কিনা তা নিশ্চিত করতে, নিম্নলিখিত Android কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) পরীক্ষাগুলি ব্যবহার করুন:
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