শর্টকাট তৈরি

শর্টকাটগুলি আপনার ব্যবহারকারীদের আপনার অ্যাপের অংশগুলি দ্রুত অ্যাক্সেস করতে সহায়তা করে নির্দিষ্ট ধরণের সামগ্রী সরবরাহ করে৷

অ্যাপ শর্টকাট এবং পিন করা শর্টকাটগুলির মধ্যে বৈসাদৃশ্য দেখানো একটি চিত্র৷
চিত্র 1. অ্যাপ শর্টকাট এবং পিন করা শর্টকাট।

আপনি কীভাবে শর্টকাট সহ সামগ্রী সরবরাহ করবেন তা নির্ভর করে আপনার ব্যবহারের ক্ষেত্রে এবং শর্টকাটের প্রসঙ্গটি অ্যাপ-চালিত বা ব্যবহারকারী-চালিত কিনা তার উপর। যদিও একটি স্ট্যাটিক শর্টকাটের প্রসঙ্গ পরিবর্তন হয় না এবং একটি গতিশীল শর্টকাটের প্রসঙ্গ ক্রমাগত পরিবর্তিত হয়, আপনার অ্যাপ উভয় ক্ষেত্রেই প্রসঙ্গটি চালায়। যে ক্ষেত্রে কোনো ব্যবহারকারী বেছে নেয় যে কীভাবে আপনার অ্যাপ তাদের কাছে সামগ্রী বিতরণ করবে, যেমন একটি পিন করা শর্টকাট, প্রসঙ্গটি ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা হয়। নিম্নলিখিত পরিস্থিতিতে প্রতিটি শর্টকাট প্রকারের জন্য কয়েকটি ব্যবহারের ক্ষেত্রে বর্ণনা করে:

  • স্ট্যাটিক শর্টকাটগুলি এমন অ্যাপগুলির জন্য সেরা যা একটি সামঞ্জস্যপূর্ণ কাঠামো ব্যবহার করে সামগ্রীর সাথে লিঙ্ক করে৷ যেহেতু বেশিরভাগ লঞ্চারগুলি একবারে শুধুমাত্র চারটি শর্টকাট প্রদর্শন করে , স্ট্যাটিক শর্টকাটগুলি নিয়মিতভাবে একটি নিয়মিত কাজ সম্পাদনের জন্য দরকারী, যেমন ব্যবহারকারী যদি একটি নির্দিষ্ট উপায়ে তাদের ক্যালেন্ডার বা ইমেল দেখতে চান৷
  • ডায়নামিক শর্টকাটগুলি প্রসঙ্গ-সংবেদনশীল অ্যাপগুলিতে অ্যাকশনের জন্য ব্যবহার করা হয়। প্রসঙ্গ-সংবেদনশীল শর্টকাটগুলি একটি অ্যাপে ব্যবহারকারীদের করা ক্রিয়াগুলির জন্য তৈরি করা হয়৷ উদাহরণস্বরূপ, আপনি যদি এমন একটি গেম তৈরি করেন যা ব্যবহারকারীকে তাদের বর্তমান স্তর থেকে শুরু করতে দেয়, তাহলে আপনাকে ঘন ঘন শর্টকাট আপডেট করতে হবে। একটি ডায়নামিক শর্টকাট ব্যবহার করে ব্যবহারকারী যখনই একটি লেভেল সাফ করে তখনই আপনাকে শর্টকাট আপডেট করতে দেয়।
  • নির্দিষ্ট ব্যবহারকারী-চালিত কর্মের জন্য পিন করা শর্টকাট ব্যবহার করা হয়। উদাহরণস্বরূপ, একজন ব্যবহারকারী লঞ্চারে একটি নির্দিষ্ট ওয়েবসাইট পিন করতে চাইতে পারেন। এটি উপকারী কারণ এটি ব্যবহারকারীকে একটি কাস্টম ক্রিয়া সম্পাদন করতে দেয়—যেমন একটি ব্রাউজারের ডিফল্ট উদাহরণ ব্যবহার করার চেয়ে আরও দ্রুত এক ধাপে ওয়েবসাইটে নেভিগেট করা।

স্ট্যাটিক শর্টকাট তৈরি করুন

স্ট্যাটিক শর্টকাটগুলি আপনার অ্যাপের মধ্যে জেনেরিক অ্যাকশনগুলির লিঙ্ক প্রদান করে এবং এই অ্যাকশনগুলি আপনার অ্যাপের বর্তমান সংস্করণের জীবনকাল ধরে সামঞ্জস্যপূর্ণ থাকতে হবে। স্ট্যাটিক শর্টকাটগুলির জন্য ভাল বিকল্পগুলির মধ্যে রয়েছে প্রেরিত বার্তাগুলি দেখা, একটি অ্যালার্ম সেট করা এবং দিনের জন্য ব্যবহারকারীর ব্যায়াম কার্যকলাপ প্রদর্শন করা।

একটি স্ট্যাটিক শর্টকাট তৈরি করতে, নিম্নলিখিতগুলি করুন:

  1. আপনার অ্যাপের AndroidManifest.xml ফাইলে, এমন কার্যকলাপ খুঁজুন যার উদ্দেশ্য ফিল্টারগুলি android.intent.action.MAIN অ্যাকশন এবং android.intent.category.LAUNCHER বিভাগে সেট করা আছে।

  2. এই কার্যকলাপে একটি <meta-data> উপাদান যোগ করুন যা সংস্থান ফাইলের উল্লেখ করে যেখানে অ্যাপের শর্টকাটগুলি সংজ্ঞায়িত করা হয়েছে:

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                package="com.example.myapplication">
        <application ... >
          <activity android:name="Main">
            <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            
            <meta-data android:name="android.app.shortcuts"
                       android:resource="@xml/shortcuts" /> 
          </activity>
        </application>
      </manifest>
      
  3. res/xml/shortcuts.xml নামে একটি নতুন রিসোর্স ফাইল তৈরি করুন।

  4. নতুন রিসোর্স ফাইলে, একটি <shortcuts> রুট উপাদান যোগ করুন যাতে <shortcut> উপাদানগুলির একটি তালিকা রয়েছে। প্রতিটি <shortcut> উপাদানে, একটি স্ট্যাটিক শর্টকাটের আইকন, বর্ণনার লেবেল এবং অ্যাপের মধ্যে এটি লঞ্চ করা উদ্দেশ্য সহ তথ্য অন্তর্ভুক্ত করুন:

      <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
        <shortcut
          android:shortcutId="compose"
          android:enabled="true"
          android:icon="@drawable/compose_icon"
          android:shortcutShortLabel="@string/compose_shortcut_short_label1"
          android:shortcutLongLabel="@string/compose_shortcut_long_label1"
          android:shortcutDisabledMessage="@string/compose_disabled_message1">
          <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.example.myapplication"
            android:targetClass="com.example.myapplication.ComposeActivity" />
          <!-- If your shortcut is associated with multiple intents, include them
               here. The last intent in the list determines what the user sees when
               they launch this shortcut. -->
          <categories android:name="android.shortcut.conversation" />
          <capability-binding android:key="actions.intent.CREATE_MESSAGE" />
        </shortcut>
        <!-- Specify more shortcuts here. -->
      </shortcuts>
      

বৈশিষ্ট্য মান কাস্টমাইজ করুন

নিম্নলিখিত তালিকায় একটি স্ট্যাটিক শর্টকাটের মধ্যে বিভিন্ন বৈশিষ্ট্যের বর্ণনা রয়েছে। android:shortcutId এবং android:shortcutShortLabel এর জন্য একটি মান প্রদান করুন। অন্যান্য সমস্ত মান ঐচ্ছিক।

android:shortcutId

একটি স্ট্রিং আক্ষরিক যা শর্টকাটকে প্রতিনিধিত্ব করে যখন একটি ShortcutManager অবজেক্ট এটিতে কাজ করে।

android:shortcutShortLabel

একটি সংক্ষিপ্ত বাক্যাংশ যা শর্টকাটের উদ্দেশ্য বর্ণনা করে। যখন সম্ভব, এই সংক্ষিপ্ত বিবরণটি 10 ​​অক্ষরের মধ্যে সীমাবদ্ধ করুন।

আরও তথ্যের জন্য, setShortLabel() দেখুন।

android:shortcutLongLabel

একটি বর্ধিত বাক্যাংশ যা শর্টকাটের উদ্দেশ্য বর্ণনা করে। যদি পর্যাপ্ত স্থান থাকে, তাহলে লঞ্চারটি android:shortcutShortLabel এর পরিবর্তে এই মানটি প্রদর্শন করে। যখন সম্ভব, এই দীর্ঘ বিবরণটিকে 25 অক্ষরের মধ্যে সীমাবদ্ধ করুন।

আরও তথ্যের জন্য, setLongLabel() দেখুন।

android:shortcutDisabledMessage

ব্যবহারকারী একটি অক্ষম শর্টকাট চালু করার চেষ্টা করার সময় একটি সমর্থিত লঞ্চারে প্রদর্শিত বার্তা। বার্তাটি ব্যবহারকারীকে ব্যাখ্যা করতে হবে কেন শর্টকাট নিষ্ক্রিয় করা হয়েছে। android:enabled true হলে এই বৈশিষ্ট্যের মান কোন প্রভাব ফেলবে না।

android:enabled

ব্যবহারকারী একটি সমর্থিত লঞ্চার থেকে শর্টকাটের সাথে ইন্টারঅ্যাক্ট করতে পারে কিনা তা নির্ধারণ করে। android:enabled এর ডিফল্ট মান true । আপনি যদি এটি false সেট করেন, তাহলে একটি android:shortcutDisabledMessage সেট করুন যা ব্যাখ্যা করে যে কেন আপনি শর্টকাটটি নিষ্ক্রিয় করছেন৷ আপনি যদি মনে করেন যে আপনাকে এই ধরনের একটি বার্তা প্রদানের প্রয়োজন নেই, তাহলে XML ফাইল থেকে সম্পূর্ণভাবে শর্টকাটটি সরিয়ে দিন।

android:icon

ব্যবহারকারীর কাছে শর্টকাট প্রদর্শন করার সময় লঞ্চার ব্যবহার করে বিটম্যাপ বা অভিযোজিত আইকন । এই মানটি একটি ইমেজ বা রিসোর্স ফাইলের পাথ হতে পারে যেটিতে ইমেজ রয়েছে। কর্মক্ষমতা এবং ধারাবাহিকতা উন্নত করতে যখনই সম্ভব অভিযোজিত আইকন ব্যবহার করুন।

অভ্যন্তরীণ উপাদানগুলি কনফিগার করুন

একটি অ্যাপের স্ট্যাটিক শর্টকাট তালিকাভুক্ত XML ফাইল প্রতিটি <shortcut> উপাদানের মধ্যে নিম্নলিখিত উপাদানগুলিকে সমর্থন করে৷ আপনার সংজ্ঞায়িত প্রতিটি স্ট্যাটিক শর্টকাটের জন্য আপনাকে অবশ্যই intent অন্তর্নিহিত উপাদান অন্তর্ভুক্ত করতে হবে।

intent

ব্যবহারকারী শর্টকাট নির্বাচন করলে সিস্টেমটি যে ক্রিয়াটি চালু করে। এই অভিপ্রায়টি অবশ্যই android:action অ্যাট্রিবিউটের জন্য একটি মান প্রদান করবে।

আপনি একটি একক শর্টকাটের জন্য একাধিক উদ্দেশ্য প্রদান করতে পারেন। বিশদ বিবরণের জন্য একাধিক অভিপ্রায় এবং কার্যকলাপ পরিচালনা করুন , একটি অভিপ্রায় সেট করুন এবং TaskStackBuilder শ্রেণীর রেফারেন্স দেখুন।

categories

আপনার অ্যাপের শর্টকাটগুলি যে ধরনের ক্রিয়াগুলি সম্পাদন করে, যেমন নতুন চ্যাট বার্তা তৈরি করার জন্য একটি গ্রুপিং প্রদান করে৷

সমর্থিত শর্টকাট বিভাগের তালিকার জন্য, ShortcutInfo ক্লাস রেফারেন্স দেখুন।

capability-binding

শর্টকাটের সাথে সংযুক্ত ক্ষমতা ঘোষণা করে।

আগের উদাহরণে, শর্টকাটটি CREATE_MESSAGE এর জন্য ঘোষিত একটি ক্ষমতার সাথে লিঙ্ক করা হয়েছে, যা একটি অ্যাপ অ্যাকশন বিল্ট-ইন উদ্দেশ্য। এই ক্যাপাবিলিটি বাইন্ডিং ব্যবহারকারীদের একটি শর্টকাট চালু করতে Google Assistant-এর সাথে কথ্য কমান্ড ব্যবহার করতে দেয়।

গতিশীল শর্টকাট তৈরি করুন

ডায়নামিক শর্টকাট আপনার অ্যাপের মধ্যে নির্দিষ্ট, প্রসঙ্গ-সংবেদনশীল অ্যাকশনের লিঙ্ক প্রদান করে। এই অ্যাকশনগুলি আপনার অ্যাপের ব্যবহার এবং আপনার অ্যাপ চলাকালীন সময়ে পরিবর্তন হতে পারে। গতিশীল শর্টকাটগুলির জন্য ভাল ব্যবহারগুলির মধ্যে একটি নির্দিষ্ট ব্যক্তিকে কল করা, একটি নির্দিষ্ট স্থানে নেভিগেট করা এবং ব্যবহারকারীর শেষ সংরক্ষণ পয়েন্ট থেকে একটি গেম লোড করা অন্তর্ভুক্ত। আপনি একটি কথোপকথন খুলতে গতিশীল শর্টকাট ব্যবহার করতে পারেন।

ShortcutManagerCompat Jetpack লাইব্রেরি হল ShortcutManager API-এর জন্য একটি সহায়ক, যা আপনাকে আপনার অ্যাপে গতিশীল শর্টকাট পরিচালনা করতে দেয়। ShortcutManagerCompat লাইব্রেরি ব্যবহার করলে বয়লারপ্লেট কোড কমে যায় এবং আপনার শর্টকাটগুলি Android সংস্করণ জুড়ে ধারাবাহিকভাবে কাজ করে তা নিশ্চিত করতে সাহায্য করে। গতিশীল শর্টকাটগুলি পুশ করার জন্যও এই লাইব্রেরিটি প্রয়োজন যাতে তারা Google শর্টকাট ইন্টিগ্রেশন লাইব্রেরির সাথে অ্যাসিস্ট্যান্টের মতো Google সারফেসে উপস্থিত হওয়ার যোগ্য হয়।

ShortcutManagerCompat API আপনার অ্যাপকে ডায়নামিক শর্টকাট সহ নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করতে দেয়:

  • পুশ এবং আপডেট করুন: আপনার গতিশীল শর্টকাটগুলি প্রকাশ এবং আপডেট করতে pushDynamicShortcut() ব্যবহার করুন। যদি ইতিমধ্যে একই আইডি সহ গতিশীল বা পিন করা শর্টকাট থাকে তবে প্রতিটি পরিবর্তনযোগ্য শর্টকাট আপডেট হয়।
  • অপসারণ করুন: removeDynamicShortcuts() ব্যবহার করে গতিশীল শর্টকাটের একটি সেট সরান। removeAllDynamicShortcuts() ব্যবহার করে সমস্ত গতিশীল শর্টকাট সরান।

শর্টকাটগুলিতে ক্রিয়াকলাপ সম্পাদন করার বিষয়ে আরও তথ্যের জন্য, শর্টকাট পরিচালনা করুন এবং ShortcutManagerCompat রেফারেন্স দেখুন।

এখানে একটি ডায়নামিক শর্টকাট তৈরি এবং এটিকে আপনার অ্যাপের সাথে যুক্ত করার একটি উদাহরণ দেওয়া হল:

কোটলিন

val shortcut = ShortcutInfoCompat.Builder(context, "id1")
        .setShortLabel("Website")
        .setLongLabel("Open the website")
        .setIcon(IconCompat.createWithResource(context, R.drawable.icon_website))
        .setIntent(Intent(Intent.ACTION_VIEW,
                Uri.parse("https://www.mysite.example.com/")))
        .build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)

জাভা

ShortcutInfoCompat shortcut = new ShortcutInfoCompat.Builder(context, "id1")
    .setShortLabel("Website")
    .setLongLabel("Open the website")
    .setIcon(IconCompat.createWithResource(context, R.drawable.icon_website))
    .setIntent(new Intent(Intent.ACTION_VIEW,
                   Uri.parse("https://www.mysite.example.com/")))
    .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcut);

Google শর্টকাট ইন্টিগ্রেশন লাইব্রেরি যোগ করুন

Google শর্টকাট ইন্টিগ্রেশন লাইব্রেরি হল একটি ঐচ্ছিক জেটপ্যাক লাইব্রেরি। এটি আপনাকে গতিশীল শর্টকাটগুলি পুশ করতে দেয় যা অ্যান্ড্রয়েড সারফেস, যেমন লঞ্চার এবং Google সারফেস, যেমন অ্যাসিস্ট্যান্টে প্রদর্শিত হতে পারে৷ এই লাইব্রেরি ব্যবহার করে ব্যবহারকারীদের দ্রুত নির্দিষ্ট সামগ্রী অ্যাক্সেস করতে বা আপনার অ্যাপে অ্যাকশন রিপ্লে করতে আপনার শর্টকাটগুলি আবিষ্কার করতে সহায়তা করে৷

উদাহরণ স্বরূপ, একটি মেসেজিং অ্যাপ একজন ব্যবহারকারীকে মেসেজ করার পর "Alex" নামের পরিচিতির জন্য একটি ডায়নামিক শর্টকাট চাপতে পারে। ডায়নামিক শর্টকাটটি পুশ করার পরে, ব্যবহারকারী যদি অ্যাসিস্ট্যান্টকে জিজ্ঞাসা করে, "Hey Google, ExampleApp-এ Alex মেসেজ করুন," Assistant ExampleApp চালু করতে পারে এবং অ্যালেক্সকে মেসেজ পাঠানোর জন্য স্বয়ংক্রিয়ভাবে কনফিগার করতে পারে।

এই লাইব্রেরির সাথে পুশ করা ডায়নামিক শর্টকাটগুলি প্রতি-ডিভাইসের ভিত্তিতে প্রয়োগ করা শর্টকাট সীমার সাপেক্ষে নয়৷ এটি আপনার অ্যাপকে একটি শর্টকাট ঠেলে দিতে দেয় যখনই কোনো ব্যবহারকারী আপনার অ্যাপে কোনো সংশ্লিষ্ট ক্রিয়া সম্পন্ন করে। এইভাবে ঘন ঘন শর্টকাটগুলি পুশ করা Google কে আপনার ব্যবহারকারীর ব্যবহারের ধরণগুলি বুঝতে দেয় এবং তাদের কাছে প্রাসঙ্গিকভাবে প্রাসঙ্গিক শর্টকাটগুলির পরামর্শ দেয়৷

উদাহরণস্বরূপ, সহকারী আপনার ফিটনেস-ট্র্যাকিং অ্যাপ থেকে পুশ করা শর্টকাটগুলি থেকে শিখতে পারে যেগুলি একজন ব্যবহারকারী সাধারণত প্রতিদিন সকালে দৌড়ায় এবং ব্যবহারকারী যখন সকালে তাদের ফোন তুলবে তখন সক্রিয়ভাবে "এক দৌড় শুরু করুন" শর্টকাট প্রস্তাব করে।

Google শর্টকাট ইন্টিগ্রেশন লাইব্রেরি নিজেই কোনো ঠিকানাযোগ্য কার্যকারিতা অফার করে না। আপনার অ্যাপে এই লাইব্রেরিটি যোগ করলে Google সারফেসগুলিকে ShortcutManagerCompat ব্যবহার করে আপনার অ্যাপ পুশ করা শর্টকাটগুলি নিতে দেয়।

আপনার অ্যাপে এই লাইব্রেরি ব্যবহার করতে, এই ধাপগুলি অনুসরণ করুন:

  1. AndroidX লাইব্রেরি সমর্থন করতে আপনার gradle.properties ফাইল আপডেট করুন:

          
          android.useAndroidX=true
          # Automatically convert third-party libraries to use AndroidX
          android.enableJetifier=true
          
          
  2. app/build.gradle এ, Google শর্টকাট ইন্টিগ্রেশন লাইব্রেরি এবং ShortcutManagerCompat জন্য নির্ভরতা যোগ করুন:

          
          dependencies {
            implementation "androidx.core:core:1.6.0"
            implementation 'androidx.core:core-google-shortcuts:1.0.0'
            ...
          }
          
          

আপনার অ্যান্ড্রয়েড প্রোজেক্টে লাইব্রেরি নির্ভরতা যোগ করা হলে, আপনার অ্যাপ ShortcutManagerCompat থেকে pushDynamicShortcut() পদ্ধতি ব্যবহার করতে পারে এমন গতিশীল শর্টকাটগুলি পুশ করতে যা লঞ্চার এবং অংশগ্রহণকারী Google সারফেসে প্রদর্শনের জন্য যোগ্য।

পিন করা শর্টকাট তৈরি করুন

Android 8.0 (API স্তর 26) এবং উচ্চতর, আপনি পিন করা শর্টকাট তৈরি করতে পারেন। স্ট্যাটিক এবং ডাইনামিক শর্টকাটগুলির বিপরীতে, পিন করা শর্টকাটগুলি সমর্থিত লঞ্চারগুলিতে আলাদা আইকন হিসাবে উপস্থিত হয়। চিত্র 1 এই দুটি ধরণের শর্টকাটের মধ্যে পার্থক্য দেখায়।

আপনার অ্যাপ ব্যবহার করে একটি সমর্থিত লঞ্চারে একটি শর্টকাট পিন করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. ডিভাইসের ডিফল্ট লঞ্চার শর্টকাটগুলির ইন-অ্যাপ পিনিং সমর্থন করে তা যাচাই করতে isRequestPinShortcutSupported() ব্যবহার করুন৷
  2. শর্টকাটটি বিদ্যমান কিনা তার উপর নির্ভর করে দুটি উপায়ে একটি ShortcutInfo অবজেক্ট তৈরি করুন:

    1. যদি শর্টকাটটি বিদ্যমান থাকে তবে একটি ShortcutInfo অবজেক্ট তৈরি করুন যাতে শুধুমাত্র বিদ্যমান শর্টকাটের আইডি থাকে। সিস্টেম স্বয়ংক্রিয়ভাবে শর্টকাট সম্পর্কিত অন্যান্য সমস্ত তথ্য খুঁজে পায় এবং পিন করে।
    2. আপনি যদি একটি নতুন শর্টকাট পিন করছেন, একটি ShortcutInfo অবজেক্ট তৈরি করুন যাতে একটি আইডি, একটি অভিপ্রায় এবং নতুন শর্টকাটের জন্য একটি ছোট লেবেল রয়েছে৷
  3. requestPinShortcut() কল করে ডিভাইসের লঞ্চারে শর্টকাট পিন করুন। এই প্রক্রিয়া চলাকালীন, আপনি একটি PendingIntent অবজেক্টে পাস করতে পারেন, যা শর্টকাট সফলভাবে পিন হলেই আপনার অ্যাপকে বিজ্ঞপ্তি দেয়।

    একটি শর্টকাট পিন করার পরে, আপনার অ্যাপ updateShortcuts() পদ্ধতি ব্যবহার করে এর বিষয়বস্তু আপডেট করতে পারে। আরও তথ্যের জন্য, আপডেট শর্টকাট পড়ুন।

নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে একটি পিন করা শর্টকাট তৈরি করতে হয়।

কোটলিন

val shortcutManager = getSystemService(ShortcutManager::class.java)

if (shortcutManager!!.isRequestPinShortcutSupported) {
    // Enable the existing shortcut with the ID "my-shortcut".
    val pinShortcutInfo = ShortcutInfo.Builder(context, "my-shortcut").build()

    // Create the PendingIntent object only if your app needs to be notified
    // that the user let the shortcut be pinned. If the pinning operation fails,
    // your app isn't notified. Assume here that the app implements a method
    // called createShortcutResultIntent() that returns a broadcast intent.
    val pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(pinShortcutInfo)

    // Configure the intent so that your app's broadcast receiver gets the
    // callback successfully. For details, see PendingIntent.getBroadcast().
    val successCallback = PendingIntent.getBroadcast(context, /* request code */ 0,
            pinnedShortcutCallbackIntent, /* flags */ 0)

    shortcutManager.requestPinShortcut(pinShortcutInfo,
            successCallback.intentSender)
}

জাভা

ShortcutManager shortcutManager =
        context.getSystemService(ShortcutManager.class);

if (shortcutManager.isRequestPinShortcutSupported()) {
    // Enable the existing shortcut with the ID "my-shortcut".
    ShortcutInfo pinShortcutInfo =
            new ShortcutInfo.Builder(context, "my-shortcut").build();

    // Create the PendingIntent object only if your app needs to be notified
    // that the user let the shortcut be pinned. If the pinning operation fails,
    // your app isn't notified. Assume here that the app implements a method
    // called createShortcutResultIntent() that returns a broadcast intent.
    Intent pinnedShortcutCallbackIntent =
            shortcutManager.createShortcutResultIntent(pinShortcutInfo);

    // Configure the intent so that your app's broadcast receiver gets the
    // callback successfully. For details, see PendingIntent.getBroadcast().
    PendingIntent successCallback = PendingIntent.getBroadcast(context, /* request code */ 0,
            pinnedShortcutCallbackIntent, /* flags */ 0);

    shortcutManager.requestPinShortcut(pinShortcutInfo,
            successCallback.getIntentSender());
}

একটি কাস্টম শর্টকাট কার্যকলাপ তৈরি করুন

কাস্টম ডায়ালগ কার্যকলাপ দেখানো একটি চিত্র যা প্রম্পট দেখায় 'আপনি কি আপনার হোম স্ক্রিনে Gmail লঞ্চার আইকন যোগ করতে চান?' কাস্টম বিকল্পগুলি হল 'না ধন্যবাদ' এবং 'আইকন যোগ করুন'।
চিত্র 2. একটি কাস্টম অ্যাপ শর্টকাট ডায়ালগ কার্যকলাপের উদাহরণ।

আপনি একটি বিশেষ ক্রিয়াকলাপও তৈরি করতে পারেন যা ব্যবহারকারীদের শর্টকাট তৈরি করতে সাহায্য করে, কাস্টম বিকল্প এবং একটি নিশ্চিতকরণ বোতাম দিয়ে সম্পূর্ণ করুন৷ চিত্র 2 Gmail অ্যাপে এই ধরনের কার্যকলাপের একটি উদাহরণ দেখায়।

আপনার অ্যাপের ম্যানিফেস্ট ফাইলে, কার্যকলাপের <intent-filter> > উপাদানে ACTION_CREATE_SHORTCUT যোগ করুন। যখন ব্যবহারকারী একটি শর্টকাট তৈরি করার চেষ্টা করে তখন এই ঘোষণাটি নিম্নলিখিত আচরণ সেট আপ করে:

  1. সিস্টেমটি আপনার অ্যাপের বিশেষ কার্যকলাপ শুরু করে।
  2. ব্যবহারকারী শর্টকাটের জন্য বিকল্প সেট করে।
  3. ব্যবহারকারী নিশ্চিতকরণ বোতামটি নির্বাচন করে।
  4. আপনার অ্যাপ createShortcutResultIntent() পদ্ধতি ব্যবহার করে শর্টকাট তৈরি করে। এই পদ্ধতিটি একটি Intent ফেরত দেয়, যা আপনার অ্যাপ setResult() ব্যবহার করে পূর্বে চালানো কার্যকলাপে ফিরে আসে।
  5. কাস্টমাইজড শর্টকাট তৈরি করতে ব্যবহৃত কার্যকলাপে আপনার অ্যাপ কল finish()

একইভাবে, আপনার অ্যাপটি ইনস্টলেশনের পরে বা অ্যাপটি প্রথমবার চালু হওয়ার পরে হোম স্ক্রিনে পিন করা শর্টকাট যোগ করার জন্য ব্যবহারকারীদের অনুরোধ করতে পারে। এই পদ্ধতিটি কার্যকর কারণ এটি আপনার ব্যবহারকারীদের তাদের সাধারণ কর্মপ্রবাহের অংশ হিসাবে একটি শর্টকাট তৈরি করতে সহায়তা করে৷

পরীক্ষা শর্টকাট

আপনার অ্যাপের শর্টকাট পরীক্ষা করতে, শর্টকাট সমর্থন করে এমন একটি লঞ্চার সহ একটি ডিভাইসে আপনার অ্যাপ ইনস্টল করুন। তারপরে, নিম্নলিখিত ক্রিয়াগুলি সম্পাদন করুন:

  • আপনার অ্যাপের জন্য সংজ্ঞায়িত শর্টকাটগুলি দেখতে আপনার অ্যাপের লঞ্চার আইকনে টাচ করে ধরে রাখুন।
  • ডিভাইসের লঞ্চারে পিন করতে একটি শর্টকাট টেনে আনুন।