<activity-alias>

সিনট্যাক্স:
<activity-alias android:enabled=["true" | "false"]
                android:exported=["true" | "false"]
                android:icon="drawable resource"
                android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"]
                android:label="string resource"
                android:name="string"
                android:permission="string"
                android:targetActivity="string" >
    ...
</activity-alias>
এর মধ্যে অন্তর্ভুক্ত:
<application>
এতে থাকতে পারে:
<intent-filter>
<meta-data>
<property>
বর্ণনা:
একটি অ্যাক্টিভিটির উপনাম, যা targetActivity অ্যাট্রিবিউট দ্বারা নামাঙ্কিত হয়। টার্গেটটিকে অবশ্যই উপনামটির মতো একই অ্যাপ্লিকেশনে থাকতে হবে এবং ম্যানিফেস্টে উপনামটির আগে ঘোষিত হতে হবে।

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

উদাহরণস্বরূপ, অ্যালিয়াসের ইন্টেন্ট ফিল্টারগুলো "android.intent.action.MAIN" এবং "android.intent.category.LAUNCHER" ' ​​ফ্ল্যাগগুলো নির্দিষ্ট করতে পারে, যার ফলে এটি অ্যাপ্লিকেশন লঞ্চারে প্রদর্শিত হয়, যদিও টার্গেট অ্যাক্টিভিটির নিজের কোনো ফিল্টারই এই ফ্ল্যাগগুলো সেট করে না।

targetActivity ছাড়া, <activity-alias> ` অ্যাট্রিবিউটগুলো হলো <activity> অ্যাট্রিবিউটগুলোর একটি উপসেট। এই উপসেটের অন্তর্ভুক্ত অ্যাট্রিবিউটগুলোর ক্ষেত্রে, টার্গেটের জন্য সেট করা কোনো মানই অ্যালিয়াসে স্থানান্তরিত হয় না। তবে, যে অ্যাট্রিবিউটগুলো এই উপসেটের অন্তর্ভুক্ত নয়, সেগুলোর ক্ষেত্রে টার্গেট অ্যাক্টিভিটির জন্য সেট করা মানগুলো অ্যালিয়াসের ক্ষেত্রেও প্রযোজ্য হয়।

বৈশিষ্ট্য:
android:enabled
এই অ্যালিয়াসের মাধ্যমে সিস্টেম টার্গেট অ্যাক্টিভিটিটি ইনস্ট্যানশিয়েট করতে পারবে কি না। পারলে "true" , এবং না পারলে "false" । ডিফল্ট মান হলো "true"

<application> এলিমেন্টের নিজস্ব enabled অ্যাট্রিবিউট আছে যা অ্যাক্টিভিটি অ্যালিয়াস সহ সমস্ত অ্যাপ্লিকেশন কম্পোনেন্টের ক্ষেত্রে প্রযোজ্য। অ্যালিয়াসের মাধ্যমে টার্গেট অ্যাক্টিভিটি ইনস্ট্যানশিয়েট করার জন্য <application> এবং <activity-alias> উভয় অ্যাট্রিবিউটের মান অবশ্যই "true" হতে হবে। যদি এর কোনো একটির মান "false" হয়, তাহলে অ্যালিয়াসটি কাজ করে না।

android:exported
অন্যান্য অ্যাপ্লিকেশনের কম্পোনেন্টগুলো এই অ্যালিয়াসের মাধ্যমে টার্গেট অ্যাক্টিভিটিটি চালু করতে পারবে কিনা। পারলে "true" , এবং না পারলে "false" । যদি "false" হয়, তাহলে টার্গেট অ্যাক্টিভিটিটি শুধুমাত্র অ্যালিয়াসটির মতো একই অ্যাপ্লিকেশনের কম্পোনেন্ট অথবা একই ইউজার আইডিযুক্ত অ্যাপ্লিকেশন দ্বারাই অ্যালিয়াসটির মাধ্যমে চালু করা যাবে।

ডিফল্ট মানটি নির্ভর করে অ্যালিয়াসটিতে ইন্টেন্ট ফিল্টার আছে কিনা তার উপর। কোনো ফিল্টার না থাকার অর্থ হলো, অ্যালিয়াসটির সঠিক নামটি উল্লেখ করেই কেবল অ্যাক্টিভিটিটি চালু করা যাবে। এর থেকে বোঝা যায় যে, অ্যালিয়াসটি শুধুমাত্র অ্যাপ্লিকেশনের অভ্যন্তরীণ ব্যবহারের জন্য, কারণ অন্য কেউ এর নাম জানে না। তাই, এর ডিফল্ট মান হলো "false" । অন্যদিকে, অন্তত একটি ফিল্টারের উপস্থিতি থেকে বোঝা যায় যে অ্যালিয়াসটি বাহ্যিক ব্যবহারের জন্য, তাই এর ডিফল্ট মান হলো "true"

android:icon
অ্যালিয়াসের মাধ্যমে ব্যবহারকারীদের কাছে টার্গেট অ্যাক্টিভিটি উপস্থাপন করার সময় ব্যবহৃত একটি আইকন। আরও তথ্যের জন্য, <activity> এলিমেন্টের icon অ্যাট্রিবিউটটি দেখুন।
android:intentMatchingFlags

সিস্টেম কীভাবে আগত ইনটেন্টগুলোকে অ্যাপ কম্পোনেন্টগুলোর সাথে মেলাবে, তা সূক্ষ্মভাবে নিয়ন্ত্রণ করতে এই অ্যাট্রিবিউটটি ব্যবহার করুন। ডিফল্টরূপে, কোনো বিশেষ মেলানোর নিয়ম প্রয়োগ করা হয় না।

একটি <activity-alias> ট্যাগে সেট করা মান, সেই নির্দিষ্ট অ্যালিয়াসের জন্য টার্গেট <activity> তে সেট করা মান বা <application> থেকে উত্তরাধিকারসূত্রে প্রাপ্ত মানকে ওভাররাইড করে। যদি অ্যালিয়াসে স্পষ্টভাবে সংজ্ঞায়িত না করা হয়, তবে এটি টার্গেট অ্যাক্টিভিটি বা অ্যাপ্লিকেশন থেকে আচরণ উত্তরাধিকারসূত্রে গ্রহণ করে।

মানটি অবশ্যই নিম্নলিখিত ফ্ল্যাগগুলির এক বা একাধিক হতে হবে, যা ' | ' দ্বারা পৃথক করা থাকবে:

পতাকা বর্ণনা
none আগত ইন্টেন্টগুলির জন্য সমস্ত বিশেষ ম্যাচিং নিয়ম নিষ্ক্রিয় করে। একাধিক ফ্ল্যাগ নির্দিষ্ট করার সময়, সাংঘর্ষিক মানগুলির সমাধান করার জন্য none ' ফ্ল্যাগটিকে অগ্রাধিকার দেওয়া হয়।
enforceIntentFilter

আগত ইন্টেন্টগুলির জন্য আরও কঠোর মিলকরণ প্রয়োগ করে:

  • সুস্পষ্ট ইনটেন্ট অবশ্যই টার্গেট কম্পোনেন্টের ইনটেন্ট ফিল্টারের সাথে মিলতে হবে।
  • অ্যাকশনবিহীন ইনটেন্টগুলো কোনো ইনটেন্ট ফিল্টারের সাথে মেলে না।
allowNullAction

অ্যাকশনবিহীন ইনটেন্টগুলোকেও ম্যাচ করার অনুমতি দিতে ম্যাচিং নিয়ম শিথিল করে। নিম্নলিখিত আচরণটি অর্জনের জন্য এই ফ্ল্যাগটি enforceIntentFilter সাথে একত্রে ব্যবহৃত হয়:

  • সুস্পষ্ট ইনটেন্ট অবশ্যই টার্গেট কম্পোনেন্টের ইনটেন্ট ফিল্টারের সাথে মিলতে হবে।
  • অ্যাকশনবিহীন ইনটেন্টগুলো যেকোনো ইনটেন্ট ফিল্টারের সাথে মেলানো যেতে পারে।

আরও তথ্যের জন্য, Android 16 (API লেভেল 36)-এর আচরণগত পরিবর্তন সম্পর্কিত Safer Intents বিভাগটি দেখুন।

android:label
ব্যবহারকারীদের কাছে অ্যালিয়াসটি উপস্থাপন করার সময় এর জন্য একটি ব্যবহারকারী-পাঠযোগ্য লেবেল। আরও তথ্যের জন্য, <activity> এলিমেন্টের label অ্যাট্রিবিউটটি দেখুন।
android:name
অ্যালিয়াসের জন্য একটি অনন্য নাম। নামটি একটি পূর্ণাঙ্গ ক্লাস নামের অনুরূপ। টার্গেট অ্যাক্টিভিটির নামের মতো নয়, অ্যালিয়াস নামটি ইচ্ছামত হতে পারে। এটি কোনো প্রকৃত ক্লাসকে নির্দেশ করে না।
android:permission
এমন একটি অনুমতির নাম যা ক্লায়েন্টদের অবশ্যই থাকতে হবে টার্গেট অ্যাক্টিভিটি চালু করতে বা অ্যালিয়াস ব্যবহার করে সেটিকে দিয়ে কোনো কাজ করাতে। যদি startActivity() বা startActivityForResult() এর কলারকে নির্দিষ্ট অনুমতিটি দেওয়া না থাকে, তাহলে টার্গেট অ্যাক্টিভিটি সক্রিয় হয় না।

এই অ্যাট্রিবিউটটি টার্গেট অ্যাক্টিভিটির জন্য সেট করা যেকোনো পারমিশনকে প্রতিস্থাপন করে। যদি এটি সেট করা না থাকে, তাহলে অ্যালিয়াসের মাধ্যমে টার্গেটটি অ্যাক্টিভেট করার জন্য কোনো পারমিশনের প্রয়োজন হয় না।

অনুমতি সম্পর্কে আরও তথ্যের জন্য, অ্যাপ ম্যানিফেস্ট ওভারভিউ-এর অনুমতি বিভাগটি দেখুন।

android:targetActivity
যে অ্যাক্টিভিটিটি অ্যালিয়াসের মাধ্যমে সক্রিয় করা যাবে তার নাম। এই নামটি অবশ্যই ম্যানিফেস্টে অ্যালিয়াসের আগে থাকা একটি <activity> এলিমেন্টের name অ্যাট্রিবিউটের সাথে মিলতে হবে।
এতে প্রবর্তন করা হয়েছিল:
এপিআই স্তর ১
আরও দেখুন:
<activity>