<ডেটা>

সিনট্যাক্স:
যদি ডেটা ট্যাগ একটি <intent-filter> এর অবিলম্বে সন্তান হয় :
<data android:scheme="string"
      android:host="string"
      android:port="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:pathSuffix="string"
      android:pathAdvancedPattern="string"
      android:mimeType="string" />

যদি ডেটা ট্যাগ একটি <uri-relative-filter-group> এর অবিলম্বে সন্তান হয়:
<data
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:pathSuffix="string"
      android:pathAdvancedPattern="string"
      android:fragment="string"
      android:fragmentPattern="string"
      android:fragmentPrefix="string"
      android:fragmentSuffix="string"
      android:fragmentAdvancedPattern="string"
      android:query="string"
      android:queryPattern="string"
      android:queryPrefix="string"
      android:querySuffix="string"
      android:queryAdvancedPattern="string" />
এর মধ্যে রয়েছে:
<intent-filter>
<uri-relative-filter-group>
বর্ণনা:
একটি অভিপ্রায় ফিল্টারে একটি ডেটা স্পেসিফিকেশন যোগ করে। স্পেসিফিকেশন হল একটি ডেটা টাইপ, mimeType অ্যাট্রিবিউট, একটি ইউআরআই বা ডেটা টাইপ এবং ইউআরআই উভয়ই ব্যবহার করে। একটি URI তার প্রতিটি অংশের জন্য পৃথক বৈশিষ্ট্য দ্বারা নির্দিষ্ট করা হয়:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]

এই বৈশিষ্ট্যগুলি যেগুলি URI ফর্ম্যাট নির্দিষ্ট করে তা ঐচ্ছিক, কিন্তু পারস্পরিকভাবে নির্ভরশীল:

  • যদি উদ্দেশ্য ফিল্টারের জন্য একটি scheme নির্দিষ্ট করা না থাকে, তবে অন্যান্য সমস্ত URI বৈশিষ্ট্য উপেক্ষা করা হয়।
  • ফিল্টারের জন্য host নির্দিষ্ট করা না থাকলে, port অ্যাট্রিবিউট এবং সমস্ত পাথ অ্যাট্রিবিউট উপেক্ষা করা হয়।

একই <intent-filter> উপাদানের মধ্যে থাকা সমস্ত <data> উপাদান একই ফিল্টারে অবদান রাখে। সুতরাং, উদাহরণস্বরূপ, নিম্নলিখিত ফিল্টার স্পেসিফিকেশন:

<intent-filter . . . >
    <data android:scheme="something" android:host="project.example.com" />
    ...
</intent-filter>

এটির সমতুল্য:

<intent-filter . . . >
    <data android:scheme="something" />
    <data android:host="project.example.com" />
    ...
</intent-filter>

আপনি একটি <intent-filter> মধ্যে যেকোন সংখ্যক <data> উপাদানগুলিকে একাধিক ডেটা বিকল্প দিতে পারেন। এর কোনো বৈশিষ্ট্যেরই ডিফল্ট মান নেই।

উদ্দেশ্য ফিল্টারগুলি কীভাবে কাজ করে সে সম্পর্কে তথ্যের জন্য, কীভাবে অভিপ্রায় বস্তুগুলি ফিল্টারের সাথে মিলে যায় তার নিয়মগুলি সহ, ম্যানিফেস্ট ফাইল ওভারভিউতে ইন্টেন্ট এবং ইনটেন্ট ফিল্টার এবং ইন্টেন্ট ফিল্টার বিভাগটি দেখুন৷

গুণাবলী:
android:scheme
একটি URI-এর স্কিম অংশ। এটি একটি URI নির্দিষ্ট করার জন্য ন্যূনতম প্রয়োজনীয় বৈশিষ্ট্য। ফিল্টারের জন্য অন্তত একটি scheme অ্যাট্রিবিউট অবশ্যই সেট করতে হবে বা অন্য কোনো ইউআরআই অ্যাট্রিবিউট অর্থপূর্ণ নয়।

একটি স্কিম ট্রেলিং কোলন ছাড়াই নির্দিষ্ট করা হয়েছে, যেমন http http: .

ফিল্টারে যদি ডেটা টাইপ সেট থাকে ( mimeType অ্যাট্রিবিউট ব্যবহার করে) কিন্তু কোনও স্কিম না থাকে, content: এবং file: স্কিমগুলি ধরে নেওয়া হয়।

দ্রষ্টব্য : অ্যান্ড্রয়েড ফ্রেমওয়ার্কে স্কিম ম্যাচিং কেস-সংবেদনশীল, RFC এর বিপরীতে। ফলস্বরূপ, সর্বদা ছোট হাতের অক্ষর ব্যবহার করে স্কিম নির্দিষ্ট করুন।

android:host
একটি URI কর্তৃপক্ষের হোস্ট অংশ। এই বৈশিষ্ট্যটি অর্থহীন যদি না ফিল্টারের জন্য একটি scheme বৈশিষ্ট্যও নির্দিষ্ট করা হয়। একাধিক সাবডোমেন মেলানোর জন্য, হোস্টে শূন্য বা তার বেশি অক্ষর মেলানোর জন্য একটি তারকাচিহ্ন ( * ) ব্যবহার করুন। উদাহরণস্বরূপ, হোস্ট *.google.com www.google.com , .google.com এবং developer.google.com সাথে মেলে।

তারকাচিহ্ন অবশ্যই হোস্ট অ্যাট্রিবিউটের প্রথম অক্ষর হতে হবে। উদাহরণস্বরূপ, হোস্ট google.co.* অবৈধ, কারণ তারকাচিহ্ন ওয়াইল্ডকার্ডটি প্রথম অক্ষর নয়৷

দ্রষ্টব্য : অ্যান্ড্রয়েড ফ্রেমওয়ার্কে হোস্টের নামের মিলটি কেস-সংবেদনশীল, আনুষ্ঠানিক RFC থেকে ভিন্ন। ফলস্বরূপ, সর্বদা ছোট হাতের অক্ষর ব্যবহার করে হোস্টের নাম উল্লেখ করুন।

android:port
একটি URI কর্তৃপক্ষের পোর্ট অংশ। ফিল্টারের জন্য scheme এবং host অ্যাট্রিবিউটও নির্দিষ্ট করা থাকলেই এই অ্যাট্রিবিউটটি অর্থবহ।
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
একটি URI এর পাথ অংশ, যা অবশ্যই একটি / দিয়ে শুরু হবে। path অ্যাট্রিবিউট একটি সম্পূর্ণ পাথ নির্দিষ্ট করে যা একটি Intent অবজেক্টের সম্পূর্ণ পাথের সাথে মিলে যায়। pathPrefix অ্যাট্রিবিউট একটি আংশিক পাথ নির্দিষ্ট করে যা শুধুমাত্র Intent অবজেক্টের পাথের প্রাথমিক অংশের সাথে মিলে যায়।

pathSuffix অ্যাট্রিবিউটটি Intent অবজেক্টের পাথের শেষ অংশের সাথে হুবহু মিলে যায় এবং এই অ্যাট্রিবিউটটি / অক্ষর দিয়ে শুরু করতে হয় না। pathPattern অ্যাট্রিবিউট একটি সম্পূর্ণ পাথ নির্দিষ্ট করে যা Intent অবজেক্টের সম্পূর্ণ পাথের সাথে মিলে যায়, কিন্তু এতে নিম্নলিখিত ওয়াইল্ডকার্ড থাকতে পারে:

  • একটি তারকাচিহ্ন ( * ) অবিলম্বে পূর্ববর্তী অক্ষরের অনেক ঘটনার সাথে শূন্যের একটি ক্রম মেলে।
  • একটি পিরিয়ড অনুসরণ করে একটি তারকাচিহ্ন ( .* ) অনেকগুলি অক্ষরের সাথে শূন্যের যেকোনো ক্রম মেলে।

pathAdvancedPattern অ্যাট্রিবিউট একটি সম্পূর্ণ পাথ নির্দিষ্ট করে, যা Intent অবজেক্টের সম্পূর্ণ পাথের সাথে মিলে যায় এবং নিম্নলিখিত regex-এর মতো প্যাটার্ন সমর্থন করে:

  • একটি পিরিয়ড ( . ) যেকোনো অক্ষরের সাথে মেলে।
  • একটি সেট ( [...] ) অক্ষরের ব্যাপ্তির সাথে মেলে। উদাহরণস্বরূপ, [0-5] 0 থেকে 5 পর্যন্ত একটি একক অঙ্কের সাথে মেলে তবে 6 থেকে 9 নয়। [a-zA-Z] ক্ষেত্রে নির্বিশেষে যেকোনো অক্ষরের সাথে মেলে সেটগুলি "না" ^ সংশোধককেও সমর্থন করে।
  • তারকাচিহ্ন ( * ) সংশোধক পূর্ববর্তী প্যাটার্ন শূন্য বা তার বেশি বার মেলে।
  • প্লাস ( + ) সংশোধক পূর্ববর্তী প্যাটার্নের সাথে এক বা একাধিক বার মেলে।
  • পরিসর ( {...} ) সংশোধক একটি প্যাটার্ন কতবার মেলে তা নির্দিষ্ট করে।
pathAdvancedPattern matcher হল একটি মূল্যায়ন বাস্তবায়ন যেখানে কোনো ব্যাকট্র্যাকিং সমর্থন ছাড়াই বাস্তব সময়ে প্যাটার্নের বিপরীতে ম্যাচিং করা হয়।

কারণ এক্সএমএল থেকে স্ট্রিং পড়ার সময় \ একটি এস্কেপ অক্ষর হিসাবে ব্যবহৃত হয়, এটি প্যাটার্ন হিসাবে পার্স করার আগে, আপনাকে ডবল-এস্কেপ করতে হবে। উদাহরণস্বরূপ, একটি আক্ষরিক * লিখিত হয় \\* , এবং একটি আক্ষরিক \ \\\ হিসাবে লেখা হয়। এটি জাভা কোডে স্ট্রিং তৈরি করার সময় আপনি যা লেখেন তার মতো।

এই পাঁচ ধরনের প্যাটার্ন সম্পর্কে আরও তথ্যের জন্য, PatternMatcher ক্লাসে PATTERN_LITERAL , PATTERN_PREFIX , PATTERN_SIMPLE_GLOB , PATTERN_SUFFIX , এবং PATTERN_ADVANCED_GLOB এর বিবরণ দেখুন।

ফিল্টারের জন্য scheme এবং host বৈশিষ্ট্যগুলিও নির্দিষ্ট করা থাকলেই এই বৈশিষ্ট্যগুলি অর্থবহ৷

pathSuffix এবং pathAdvancedPattern API স্তর 31-এ চালু করা হয়েছিল।

android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern

একটি URI খণ্ডের জন্য একটি ম্যাচার। # উপসর্গ অন্তর্ভুক্ত করবেন না। প্রতিটি বৈশিষ্ট্যে অনুমোদিত প্যাটার্নের অর্থ এবং প্যাটার্নের জন্য উপরে দেখুন।

সাধারণত ইউআরআই এনকোড করা অক্ষরগুলির সাথে মেলানোর জন্য, অ্যাট্রিবিউট মানের মধ্যে কাঁচা (ননকোডেড) ফর্ম অন্তর্ভুক্ত করুন। যেমন, <data android:fragment="test!" /> ম্যাচ #test! এবং #test%21

API স্তর 35-এ প্রবর্তন করা হয়েছে।

android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern

একটি URI ক্যোয়ারী প্যারামিটারের জন্য একটি ম্যাচার (এবং, ঐচ্ছিকভাবে, একটি মান)। উদাহরণস্বরূপ, আপনি <data android:query="param=value" /> এর সাথে ?param=value এ শেষ হওয়া URI-গুলিকে মেলাতে পারেন। অন্তর্ভুক্ত করবেন না ? উপসর্গ প্রতিটি বৈশিষ্ট্যে অনুমোদিত প্যাটার্নের অর্থ এবং প্যাটার্নের জন্য উপরে দেখুন।

সাধারণত ইউআরআই-এনকোড করা অক্ষরগুলিকে মেলানোর জন্য, অ্যাট্রিবিউট মানের মধ্যে কাঁচা (ননকোডেড) ফর্ম অন্তর্ভুক্ত করুন। যেমন, <data android:query="test!" /> ম্যাচ ?test! এবং ?test%21 .

API স্তর 35-এ প্রবর্তন করা হয়েছে।

android:mimeType
একটি MIME মিডিয়া প্রকার, যেমন image/jpeg বা audio/mpeg4-generic । সাবটাইপটি তারকাচিহ্ন ওয়াইল্ডকার্ড হতে পারে ( * ) যে কোনও সাবটাইপ মেলে তা নির্দেশ করতে।

একটি অভিপ্রায় ফিল্টারের জন্য একটি <data> উপাদান ঘোষণা করা সাধারণ যেটিতে শুধুমাত্র android:mimeType বৈশিষ্ট্য রয়েছে।

দ্রষ্টব্য : অ্যান্ড্রয়েড ফ্রেমওয়ার্কে MIME টাইপ ম্যাচিং কেস-সংবেদনশীল, আনুষ্ঠানিক RFC MIME ধরনের থেকে ভিন্ন। ফলস্বরূপ, সর্বদা ছোট হাতের অক্ষর ব্যবহার করে MIME প্রকারগুলি নির্দিষ্ট করুন৷

প্রবর্তিত:
API স্তর 1
এছাড়াও দেখুন:
<action>
<category>