<ব্যবহার-বৈশিষ্ট্য>

Google Play আপনার অ্যাপ ম্যানিফেস্টে ঘোষিত <uses-feature> উপাদানগুলি ব্যবহার করে আপনার অ্যাপকে এমন ডিভাইস থেকে ফিল্টার করতে যা এর হার্ডওয়্যার এবং সফ্টওয়্যার বৈশিষ্ট্যের প্রয়োজনীয়তা পূরণ করে না।

আপনার অ্যাপ্লিকেশানের প্রয়োজনীয় বৈশিষ্ট্যগুলি নির্দিষ্ট করে, আপনি সমস্ত ব্যবহারকারীদের কাছে উপস্থাপন না করে শুধুমাত্র সেই ব্যবহারকারীদের কাছে আপনার অ্যাপ্লিকেশন উপস্থাপন করতে Google Play সক্ষম করেন যাদের ডিভাইসগুলি অ্যাপ্লিকেশনটির বৈশিষ্ট্যের প্রয়োজনীয়তাগুলি পূরণ করে৷

Google Play ফিল্টারিংয়ের ভিত্তি হিসাবে বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করে সে সম্পর্কে গুরুত্বপূর্ণ তথ্যের জন্য, Google Play এবং বৈশিষ্ট্য-ভিত্তিক ফিল্টারিং বিভাগটি দেখুন৷

সিনট্যাক্স:
<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />
এর মধ্যে রয়েছে:
<manifest>
বর্ণনা:

একটি একক হার্ডওয়্যার বা সফ্টওয়্যার বৈশিষ্ট্য ঘোষণা করে যা অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়।

একটি <uses-feature> ঘোষণার উদ্দেশ্য হল আপনার অ্যাপ্লিকেশন নির্ভর করে এমন হার্ডওয়্যার এবং সফ্টওয়্যার বৈশিষ্ট্যগুলির সেটের যে কোনো বাহ্যিক সত্তাকে অবহিত করা। উপাদানটি একটি required বৈশিষ্ট্য অফার করে যা আপনাকে নির্দিষ্ট করতে দেয় যে আপনার অ্যাপ্লিকেশনটি ঘোষিত বৈশিষ্ট্য ব্যতীত কাজ করবে এবং কাজ করতে পারবে না বা বৈশিষ্ট্যটি থাকা পছন্দ করে তবে এটি ছাড়া কাজ করতে পারে।

যেহেতু বৈশিষ্ট্য সমর্থন সমস্ত অ্যান্ড্রয়েড ডিভাইস জুড়ে পরিবর্তিত হতে পারে, তাই <uses-feature> উপাদানটি একটি অ্যাপ্লিকেশনকে ডিভাইস-ভেরিয়েবল বৈশিষ্ট্যগুলি বর্ণনা করতে দিতে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে যা এটি ব্যবহার করে।

উপলব্ধ বৈশিষ্ট্যগুলির সেট যা আপনার অ্যাপ্লিকেশন ঘোষণা করে Android PackageManager দ্বারা উপলব্ধ বৈশিষ্ট্য ধ্রুবকের সেটের সাথে মিলে যায়৷ বৈশিষ্ট্য ধ্রুবকগুলি এই নথির বৈশিষ্ট্য উল্লেখ বিভাগে তালিকাভুক্ত করা হয়েছে৷

আপনাকে অবশ্যই প্রতিটি বৈশিষ্ট্য একটি পৃথক <uses-feature> উপাদানে নির্দিষ্ট করতে হবে, তাই আপনার অ্যাপ্লিকেশনের একাধিক বৈশিষ্ট্যের প্রয়োজন হলে, এটি একাধিক <uses-feature> উপাদান ঘোষণা করে। উদাহরণস্বরূপ, ডিভাইসে ব্লুটুথ এবং ক্যামেরা উভয় বৈশিষ্ট্যের প্রয়োজন এমন একটি অ্যাপ্লিকেশন এই দুটি উপাদান ঘোষণা করে:

<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
<uses-feature android:name="android.hardware.camera.any" android:required="true" />

সাধারণভাবে, আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় সমস্ত বৈশিষ্ট্যের জন্য সর্বদা <uses-feature> উপাদান ঘোষণা করুন।

ঘোষিত <uses-feature> উপাদানগুলি শুধুমাত্র তথ্যমূলক, যার অর্থ হল Android সিস্টেম নিজেই একটি অ্যাপ্লিকেশন ইনস্টল করার আগে ডিভাইসে বৈশিষ্ট্য সমর্থনের সাথে মিল আছে কিনা তা পরীক্ষা করে না।

যাইহোক, অন্যান্য পরিষেবা, যেমন Google Play, এবং অ্যাপ্লিকেশনগুলি আপনার অ্যাপ্লিকেশনের সাথে পরিচালনা বা ইন্টারঅ্যাক্ট করার অংশ হিসাবে আপনার অ্যাপ্লিকেশনের <uses-feature> ঘোষণাগুলি পরীক্ষা করতে পারে। এই কারণে, আপনার অ্যাপ্লিকেশন ব্যবহার করে এমন সমস্ত বৈশিষ্ট্যগুলি ঘোষণা করা খুবই গুরুত্বপূর্ণ৷

কিছু বৈশিষ্ট্যের জন্য, একটি নির্দিষ্ট বৈশিষ্ট্য থাকতে পারে যা আপনাকে বৈশিষ্ট্যটির একটি সংস্করণ সংজ্ঞায়িত করতে দেয়, যেমন Open GL-এর সংস্করণ ব্যবহার করা হয়েছে ( glEsVersion দিয়ে ঘোষিত)। অন্যান্য বৈশিষ্ট্য যা একটি ডিভাইসের জন্য আছে বা নেই, যেমন একটি ক্যামেরা, name বৈশিষ্ট্য ব্যবহার করে ঘোষণা করা হয়।

যদিও <uses-feature> উপাদানটি শুধুমাত্র API স্তর 4 বা উচ্চতর চলমান ডিভাইসগুলির জন্য সক্রিয় করা হয়েছে, minSdkVersion 3 বা তার কম হলেও সমস্ত অ্যাপ্লিকেশনের জন্য এই উপাদানগুলি অন্তর্ভুক্ত করুন৷ প্ল্যাটফর্মের পুরানো সংস্করণে চলমান ডিভাইসগুলি উপাদানটিকে উপেক্ষা করে।

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

গুণাবলী:
android:name
একটি বর্ণনাকারী স্ট্রিং হিসাবে অ্যাপ্লিকেশন দ্বারা ব্যবহৃত একটি একক হার্ডওয়্যার বা সফ্টওয়্যার বৈশিষ্ট্য নির্দিষ্ট করে৷ বৈধ বৈশিষ্ট্যের মানগুলি হার্ডওয়্যার বৈশিষ্ট্য এবং সফ্টওয়্যার বৈশিষ্ট্য বিভাগে তালিকাভুক্ত করা হয়েছে৷ এই বৈশিষ্ট্যের মানগুলি কেস-সংবেদনশীল।
android:required
বুলিয়ান মান যা নির্দেশ করে যে অ্যাপ্লিকেশনটির জন্য android:name এ নির্দিষ্ট বৈশিষ্ট্যের প্রয়োজন আছে কিনা।
  • একটি বৈশিষ্ট্যের জন্য android:required="true" ঘোষণা করা ইঙ্গিত দেয় যে অ্যাপ্লিকেশনটি কাজ করতে পারে না বা কাজ করার জন্য ডিজাইন করা হয়নি , যখন নির্দিষ্ট বৈশিষ্ট্যটি ডিভাইসে উপস্থিত না থাকে।
  • একটি বৈশিষ্ট্যের জন্য android:required="false" ঘোষণা করা ইঙ্গিত দেয় যে ডিভাইসে উপস্থিত থাকলে অ্যাপ্লিকেশনটি বৈশিষ্ট্যটি ব্যবহার করে , তবে এটি প্রয়োজনে নির্দিষ্ট বৈশিষ্ট্য ছাড়াই কাজ করার জন্য ডিজাইন করা হয়েছে

android:required এর ডিফল্ট মান হল "true"

android:glEsVersion
অ্যাপ্লিকেশনটির জন্য OpenGL ES সংস্করণ প্রয়োজন। উচ্চ 16 বিট প্রধান সংখ্যা প্রতিনিধিত্ব করে এবং নিম্ন 16 বিট গৌণ সংখ্যা প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, OpenGL ES সংস্করণ 2.0 নির্দিষ্ট করার জন্য, আপনি "0x00020000" হিসাবে মান সেট করেছেন, বা OpenGL ES 3.2 নির্দিষ্ট করতে, আপনি মানটিকে "0x00030002" হিসাবে সেট করেছেন৷

একটি অ্যাপ্লিকেশন তার ম্যানিফেস্টে সর্বাধিক একটি android:glEsVersion বৈশিষ্ট্য নির্দিষ্ট করে৷ যদি এটি একাধিক নির্দিষ্ট করে, তাহলে সংখ্যাগতভাবে সর্বোচ্চ মান সহ android:glEsVersion ব্যবহার করা হয় এবং অন্য কোনো মান উপেক্ষা করা হয়।

যদি একটি অ্যাপ্লিকেশন একটি android:glEsVersion বৈশিষ্ট্য নির্দিষ্ট না করে, তাহলে অনুমান করা হয় যে অ্যাপ্লিকেশনটির শুধুমাত্র OpenGL ES 1.0 প্রয়োজন, যা সমস্ত Android-চালিত ডিভাইস দ্বারা সমর্থিত।

একটি অ্যাপ্লিকেশন অনুমান করতে পারে যে যদি একটি প্ল্যাটফর্ম একটি প্রদত্ত OpenGL ES সংস্করণ সমর্থন করে, তবে এটি সমস্ত সংখ্যাগতভাবে নিম্ন OpenGL ES সংস্করণগুলিকে সমর্থন করে। অতএব, একটি অ্যাপ্লিকেশনের জন্য যার জন্য OpenGL ES 1.0 এবং OpenGL ES 2.0 উভয়ই প্রয়োজন, উল্লেখ করুন যে এটির জন্য OpenGL ES 2.0 প্রয়োজন৷

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

রানটাইমে সমর্থিত OpenGL ES সংস্করণটি কীভাবে পরীক্ষা করবেন তা সহ OpenGL ES ব্যবহার সম্পর্কে আরও তথ্যের জন্য, OpenGL ES API নির্দেশিকা দেখুন।

প্রবর্তিত:
API স্তর 4
এছাড়াও দেখুন:

Google Play এবং বৈশিষ্ট্য-ভিত্তিক ফিল্টারিং

Google Play ব্যবহারকারীদের কাছে দৃশ্যমান অ্যাপ্লিকেশনগুলিকে ফিল্টার করে যাতে ব্যবহারকারীরা শুধুমাত্র তাদের ডিভাইসের সাথে সামঞ্জস্যপূর্ণ অ্যাপ্লিকেশনগুলি দেখতে এবং ডাউনলোড করতে পারে৷ এটি অ্যাপ্লিকেশনগুলিকে ফিল্টার করার একটি উপায় হল বৈশিষ্ট্য সামঞ্জস্য দ্বারা।

একটি প্রদত্ত ব্যবহারকারীর ডিভাইসের সাথে একটি অ্যাপ্লিকেশনের বৈশিষ্ট্য সামঞ্জস্য নির্ধারণ করতে, Google Play তুলনা করে:

  • অ্যাপ্লিকেশানের ম্যানিফেস্টে <uses-feature> উপাদানে ঘোষিত হিসাবে অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি।
  • ডিভাইসে উপলব্ধ বৈশিষ্ট্যগুলি, হার্ডওয়্যার বা সফ্টওয়্যারে, যেমনটি শুধুমাত্র-পঠনযোগ্য সিস্টেম বৈশিষ্ট্যগুলি ব্যবহার করে রিপোর্ট করা হয়েছে৷

বৈশিষ্ট্যগুলির সঠিকভাবে তুলনা করার জন্য, Android প্যাকেজ ম্যানেজার বৈশিষ্ট্যের ধ্রুবকগুলির একটি ভাগ করা সেট সরবরাহ করে যা অ্যাপ্লিকেশন এবং ডিভাইস উভয়ই বৈশিষ্ট্যের প্রয়োজনীয়তা এবং সমর্থন ঘোষণা করতে ব্যবহার করে৷ উপলব্ধ বৈশিষ্ট্যের ধ্রুবকগুলি এই নথির বৈশিষ্ট্য রেফারেন্স বিভাগে এবং PackageManager এর জন্য ক্লাস ডকুমেন্টেশনে তালিকাভুক্ত করা হয়েছে।

ব্যবহারকারী যখন Google Play চালু করেন, তখন অ্যাপ্লিকেশনটি getSystemAvailableFeatures() কল করে ডিভাইসে উপলব্ধ বৈশিষ্ট্যের তালিকার জন্য প্যাকেজ পরিচালককে জিজ্ঞাসা করে। স্টোর অ্যাপ্লিকেশানটি ব্যবহারকারীর জন্য সেশন স্থাপন করার সময় Google Play পর্যন্ত বৈশিষ্ট্যের তালিকা পাস করে।

প্রতিবার আপনি Google Play Console-এ একটি অ্যাপ্লিকেশন আপলোড করার সময়, Google Play অ্যাপ্লিকেশনটির ম্যানিফেস্ট ফাইলটি স্ক্যান করে৷ এটি <uses-feature> উপাদানের সন্ধান করে এবং কিছু ক্ষেত্রে, যেমন <uses-sdk> এবং <uses-permission> উপাদানগুলির সাথে অন্যান্য উপাদানগুলির সমন্বয়ে তাদের মূল্যায়ন করে। অ্যাপ্লিকেশনটির প্রয়োজনীয় বৈশিষ্ট্যগুলির সেট স্থাপন করার পরে, এটি অ্যাপ্লিকেশন APK এবং অ্যাপ্লিকেশন সংস্করণের সাথে সম্পর্কিত মেটাডেটা হিসাবে অভ্যন্তরীণভাবে তালিকাটি সংরক্ষণ করে৷

যখন একজন ব্যবহারকারী Google Play অ্যাপ্লিকেশন ব্যবহার করে অ্যাপ্লিকেশনগুলি অনুসন্ধান করে বা ব্রাউজ করে, তখন পরিষেবাটি ব্যবহারকারীর ডিভাইসে উপলব্ধ বৈশিষ্ট্যগুলির সাথে প্রতিটি অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলির তুলনা করে৷ যদি একটি অ্যাপ্লিকেশনের প্রয়োজনীয় সমস্ত বৈশিষ্ট্য ডিভাইসে উপস্থিত থাকে, Google Play ব্যবহারকারীকে অ্যাপ্লিকেশনটি দেখতে এবং সম্ভাব্যভাবে এটি ডাউনলোড করতে দেয়৷

কোনো প্রয়োজনীয় বৈশিষ্ট্য ডিভাইস দ্বারা সমর্থিত না হলে, Google Play অ্যাপ্লিকেশনটিকে ফিল্টার করে যাতে এটি ব্যবহারকারীর কাছে দৃশ্যমান না হয় বা ডাউনলোডের জন্য উপলব্ধ না হয়।

যেহেতু আপনি <uses-feature> উপাদানগুলিতে যে বৈশিষ্ট্যগুলি ঘোষণা করেন তা সরাসরি Google Play কীভাবে আপনার অ্যাপ্লিকেশনকে ফিল্টার করে তা প্রভাবিত করে, তাই Google Play কীভাবে অ্যাপ্লিকেশনটির ম্যানিফেস্টকে মূল্যায়ন করে এবং প্রয়োজনীয় বৈশিষ্ট্যগুলির সেট স্থাপন করে তা বোঝা গুরুত্বপূর্ণ৷ নিম্নলিখিত বিভাগগুলি আরও তথ্য প্রদান করে।

স্পষ্টভাবে ঘোষিত বৈশিষ্ট্যের উপর ভিত্তি করে ফিল্টারিং

একটি স্পষ্টভাবে ঘোষিত বৈশিষ্ট্য হল যেটি আপনার অ্যাপ্লিকেশন একটি <uses-feature> উপাদানে ঘোষণা করে। বৈশিষ্ট্যের ঘোষণায় একটি android:required=["true" | "false"] অন্তর্ভুক্ত থাকতে পারে android:required=["true" | "false"] অ্যাট্রিবিউট যদি আপনি এপিআই লেভেল 5 বা উচ্চতরের বিরুদ্ধে কম্পাইল করেন।

এটি আপনাকে নির্দিষ্ট করতে দেয় যে অ্যাপ্লিকেশনটির বৈশিষ্ট্যটি প্রয়োজন এবং এটি ছাড়া সঠিকভাবে কাজ করতে পারে না ( "true" ) বা উপলব্ধ থাকলে বৈশিষ্ট্যটি ব্যবহার করে, তবে এটি ছাড়া চালানোর জন্য ডিজাইন করা হয়েছে ( "false" )।

Google Play এইভাবে স্পষ্টভাবে ঘোষিত বৈশিষ্ট্যগুলি পরিচালনা করে:

  • যদি একটি বৈশিষ্ট্য স্পষ্টভাবে প্রয়োজনীয় হিসাবে ঘোষণা করা হয়, যেমন নিম্নলিখিত উদাহরণে দেখানো হয়েছে, Google Play অ্যাপ্লিকেশনটির জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলির তালিকায় বৈশিষ্ট্যটি যুক্ত করে। এটি তারপরে সেই বৈশিষ্ট্যটি প্রদান করে না এমন ডিভাইসগুলিতে ব্যবহারকারীদের থেকে অ্যাপ্লিকেশনটিকে ফিল্টার করে।
    <uses-feature android:name="android.hardware.camera.any" android:required="true" />
  • নিম্নলিখিত উদাহরণে দেখানো হিসাবে যদি একটি বৈশিষ্ট্য স্পষ্টভাবে প্রয়োজনীয় নয় বলে ঘোষণা করা হয়, Google Play প্রয়োজনীয় বৈশিষ্ট্যগুলির তালিকায় বৈশিষ্ট্যটি যোগ করে না । সেই কারণে, অ্যাপ্লিকেশন ফিল্টার করার সময় একটি স্পষ্টভাবে ঘোষিত অ-প্রয়োজনীয় বৈশিষ্ট্য বিবেচনা করা হয় না। এমনকি ডিভাইসটি ঘোষিত বৈশিষ্ট্য প্রদান না করলেও, Google Play এখনও অ্যাপ্লিকেশনটিকে ডিভাইসের সাথে সামঞ্জস্যপূর্ণ বলে বিবেচনা করে এবং অন্যান্য ফিল্টারিং নিয়ম প্রযোজ্য না হওয়া পর্যন্ত এটি ব্যবহারকারীকে দেখায়।
    <uses-feature android:name="android.hardware.camera" android:required="false" />
  • যদি একটি বৈশিষ্ট্য স্পষ্টভাবে ঘোষণা করা হয়, কিন্তু একটি android:required বৈশিষ্ট্য ছাড়াই, Google Play অনুমান করে যে বৈশিষ্ট্যটি প্রয়োজনীয় এবং এটিতে ফিল্টারিং সেট আপ করে৷

সাধারণভাবে, যদি আপনার অ্যাপ্লিকেশানটি Android 1.6 এবং তার নিচের সংস্করণে চালানোর জন্য ডিজাইন করা হয়, android:required অ্যাট্রিবিউটটি API-এ উপলভ্য নয় এবং Google Play অনুমান করে যে সমস্ত <uses-feature> ঘোষণা প্রয়োজন।

দ্রষ্টব্য: একটি বৈশিষ্ট্য স্পষ্টভাবে ঘোষণা করে এবং একটি android:required="false" বৈশিষ্ট্য অন্তর্ভুক্ত করে, আপনি নির্দিষ্ট বৈশিষ্ট্যের জন্য Google Play-তে কার্যকরভাবে সমস্ত ফিল্টারিং অক্ষম করতে পারেন৷

অন্তর্নিহিত বৈশিষ্ট্যের উপর ভিত্তি করে ফিল্টার করুন

একটি অন্তর্নিহিত বৈশিষ্ট্য হল এমন একটি যা একটি অ্যাপ্লিকেশন সঠিকভাবে কাজ করার জন্য প্রয়োজন, কিন্তু যা ম্যানিফেস্ট ফাইলের <uses-feature> উপাদানে ঘোষণা করা হয় না । কঠোরভাবে বলতে গেলে, প্রতিটি অ্যাপ্লিকেশানের জন্য সর্বদা সমস্ত বৈশিষ্ট্য ঘোষণা করা সর্বোত্তম যা এটি ব্যবহার করে বা প্রয়োজন, এবং একটি অ্যাপ্লিকেশন দ্বারা ব্যবহৃত বৈশিষ্ট্যের জন্য একটি ঘোষণার অনুপস্থিতি একটি ত্রুটি হিসাবে বিবেচিত হতে পারে৷

যাইহোক, ব্যবহারকারী এবং বিকাশকারীদের জন্য একটি সুরক্ষা হিসাবে, Google Play প্রতিটি অ্যাপ্লিকেশনে অন্তর্নিহিত বৈশিষ্ট্যগুলি সন্ধান করে এবং সেই বৈশিষ্ট্যগুলির জন্য ফিল্টার সেট আপ করে, যেমন এটি স্পষ্টভাবে ঘোষিত বৈশিষ্ট্যগুলির জন্য করে৷

একটি অ্যাপ্লিকেশনের জন্য একটি বৈশিষ্ট্যের প্রয়োজন হতে পারে তবে নিম্নলিখিত কারণে এটি ঘোষণা করা যাবে না:

  • অ্যাপ্লিকেশানটি অ্যান্ড্রয়েড লাইব্রেরির একটি পুরানো সংস্করণের (অ্যান্ড্রয়েড 1.5 বা তার আগের) বিপরীতে সংকলিত হয়েছিল, যার জন্য <uses-feature> উপাদানটি উপলব্ধ নেই।
  • বিকাশকারী ভুলভাবে অনুমান করে যে বৈশিষ্ট্যটি সমস্ত ডিভাইসে উপস্থিত রয়েছে এবং একটি ঘোষণা অপ্রয়োজনীয়।
  • বিকাশকারী ঘটনাক্রমে বৈশিষ্ট্য ঘোষণা বাদ দেন।
  • বিকাশকারী বৈশিষ্ট্যটি স্পষ্টভাবে ঘোষণা করে, কিন্তু ঘোষণাটি বৈধ নয়। উদাহরণস্বরূপ, <uses-feature> উপাদানের নামের একটি বানান ত্রুটি বা android:name বৈশিষ্ট্যের জন্য একটি অচেনা স্ট্রিং মান বৈশিষ্ট্য ঘোষণাকে বাতিল করে।

এই ক্ষেত্রেগুলির জন্য অ্যাকাউন্ট করার জন্য, Google Play ম্যানিফেস্ট ফাইলে ঘোষিত অন্যান্য উপাদানগুলি , বিশেষত <uses-permission> উপাদানগুলি পরীক্ষা করে একটি অ্যাপ্লিকেশনের অন্তর্নিহিত বৈশিষ্ট্যের প্রয়োজনীয়তাগুলি আবিষ্কার করার চেষ্টা করে৷

যদি কোনো অ্যাপ্লিকেশান হার্ডওয়্যার-সম্পর্কিত অনুমতির জন্য অনুরোধ করে, Google Play অনুমান করে যে অ্যাপ্লিকেশনটি অন্তর্নিহিত হার্ডওয়্যার বৈশিষ্ট্যগুলি ব্যবহার করে এবং সেইজন্য সেই বৈশিষ্ট্যগুলির প্রয়োজন, এমনকি যদি কোনও অনুরূপ <uses-feature> ঘোষণা না থাকে। এই ধরনের অনুমতির জন্য, Google Play মেটাডেটাতে অন্তর্নিহিত হার্ডওয়্যার বৈশিষ্ট্য যোগ করে যা এটি অ্যাপ্লিকেশনের জন্য সঞ্চয় করে এবং তাদের জন্য ফিল্টার সেট আপ করে।

উদাহরণস্বরূপ, যদি একটি অ্যাপ্লিকেশন CAMERA অনুমতির অনুরোধ করে, Google Play অনুমান করে যে অ্যাপ্লিকেশনটির জন্য একটি পিছনে (বিশ্ব-মুখী) ক্যামেরা প্রয়োজন, এমনকি যদি অ্যাপটি android.hardware.camera এর জন্য একটি <uses-feature> উপাদান ঘোষণা না করে। ফলস্বরূপ, Google Play এমন ডিভাইসগুলিকে ফিল্টার করে যেগুলির পিছনে ক্যামেরা নেই৷

আপনি যদি Google Play একটি নির্দিষ্ট অন্তর্নিহিত বৈশিষ্ট্যের উপর ভিত্তি করে ফিল্টার করতে না চান, তাহলে একটি <uses-feature> উপাদানে স্পষ্টভাবে বৈশিষ্ট্যটি ঘোষণা করুন এবং android:required="false" বৈশিষ্ট্যটি অন্তর্ভুক্ত করুন। উদাহরণস্বরূপ, CAMERA অনুমতি দ্বারা নিহিত ফিল্টারিং অক্ষম করতে, নিম্নলিখিত বৈশিষ্ট্যগুলি ঘোষণা করুন:

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

সতর্কতা: আপনি <uses-permission> উপাদানে যে অনুমতিগুলির জন্য অনুরোধ করেন তা সরাসরি Google Play আপনার অ্যাপ্লিকেশনকে কীভাবে ফিল্টার করে তা প্রভাবিত করতে পারে। যে অনুমতিগুলি বৈশিষ্ট্যের প্রয়োজনীয়তাগুলিকে বোঝায় সেগুলি অনুমতিগুলির সম্পূর্ণ সেট তালিকাভুক্ত করে যা বৈশিষ্ট্যের প্রয়োজনীয়তাগুলিকে বোঝায় এবং তাই ফিল্টারিং ট্রিগার করে৷

ব্লুটুথ বৈশিষ্ট্যের জন্য বিশেষ হ্যান্ডলিং

ব্লুটুথের জন্য ফিল্টারিং নির্ধারণ করার সময় Google Play পূর্ববর্তী উদাহরণে বর্ণিত নিয়মের থেকে কিছুটা ভিন্ন নিয়ম প্রয়োগ করে৷

যদি কোনো অ্যাপ্লিকেশান <uses-permission> এলিমেন্টে ব্লুটুথ অনুমতি ঘোষণা করে কিন্তু <uses-feature> এলিমেন্টে ব্লুটুথ বৈশিষ্ট্যটি স্পষ্টভাবে ঘোষণা না করে, তাহলে Google Play Android প্ল্যাটফর্মের সংস্করণ(গুলি) পরীক্ষা করে যেটিতে অ্যাপ্লিকেশনটি রয়েছে। চালানোর জন্য ডিজাইন করা হয়েছে, যেমন <uses-sdk> উপাদানে উল্লেখ করা হয়েছে।

নিম্নলিখিত সারণীতে দেখানো হয়েছে, Google Play শুধুমাত্র ব্লুটুথ বৈশিষ্ট্যের জন্য ফিল্টারিং সক্ষম করে যদি অ্যাপ্লিকেশনটি তার সর্বনিম্ন বা লক্ষ্যযুক্ত প্ল্যাটফর্মটিকে Android 2.0 (API স্তর 5) বা উচ্চতর হিসাবে ঘোষণা করে। যাইহোক, মনে রাখবেন যে Google Play ফিল্টার করার জন্য স্বাভাবিক নিয়মগুলি প্রয়োগ করে যখন অ্যাপ্লিকেশনটি <uses-feature> এলিমেন্টে ব্লুটুথ বৈশিষ্ট্যটি স্পষ্টভাবে ঘোষণা করে।

সারণি 1. Google Play কীভাবে একটি অ্যাপ্লিকেশনের জন্য ব্লুটুথ বৈশিষ্ট্যের প্রয়োজনীয়তা নির্ধারণ করে যেটি একটি ব্লুটুথ অনুমতির অনুরোধ করে কিন্তু <uses-feature> উপাদানে ব্লুটুথ বৈশিষ্ট্য ঘোষণা করে না।

যদি minSdkVersion হয়... এবং targetSdkVersion হল ফলাফল
<=4, অথবা <uses-sdk> ঘোষণা করা হয়নি <=4 android.hardware.bluetooth বৈশিষ্ট্যের জন্য রিপোর্ট করা সমর্থনের ভিত্তিতে Google Play কোনো ডিভাইস থেকে অ্যাপ্লিকেশনটিকে ফিল্টার করে না
<=4 >=5 android.hardware.bluetooth বৈশিষ্ট্য (পুরনো রিলিজ সহ) সমর্থন করে না এমন যেকোনো ডিভাইস থেকে Google Play অ্যাপ্লিকেশনটিকে ফিল্টার করে।
>=5 >=5

Google Play কীভাবে ব্লুটুথ বৈশিষ্ট্য পরিচালনা করে তার উপর ভিত্তি করে নিম্নলিখিত উদাহরণগুলি বিভিন্ন ফিল্টারিং প্রভাবগুলিকে চিত্রিত করে৷

প্রথম উদাহরণে, একটি অ্যাপ্লিকেশন যা পুরানো API স্তরে চালানোর জন্য ডিজাইন করা হয়েছে একটি ব্লুটুথ অনুমতি ঘোষণা করে কিন্তু <uses-feature> উপাদানে ব্লুটুথ বৈশিষ্ট্য ঘোষণা করে না।
ফলাফল: Google Play কোনো ডিভাইস থেকে অ্যাপ্লিকেশন ফিল্টার করে না।
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" />
    ...
</manifest>
দ্বিতীয় উদাহরণে, একই অ্যাপ্লিকেশন "5" এর একটি লক্ষ্য API স্তরও ঘোষণা করে।
ফলাফল: Google Play এখন অনুমান করে যে বৈশিষ্ট্যটি প্রয়োজনীয় এবং প্ল্যাটফর্মের পুরানো সংস্করণগুলি চালিত ডিভাইসগুলি সহ ব্লুটুথ সমর্থনের প্রতিবেদন করে না এমন সমস্ত ডিভাইস থেকে অ্যাপ্লিকেশনটিকে ফিল্টার করে৷
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
এখানে, একই অ্যাপ্লিকেশন এখন বিশেষভাবে ব্লুটুথ বৈশিষ্ট্য ঘোষণা করে।
ফলাফল: আগের উদাহরণের মতো: ফিল্টারিং প্রয়োগ করা হয়েছে।
<manifest ...>
    <uses-feature android:name="android.hardware.bluetooth" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
অবশেষে, নিম্নলিখিত ক্ষেত্রে, একই অ্যাপ্লিকেশন একটি android:required="false" বৈশিষ্ট্য যোগ করে।
ফলাফল: Google Play সমস্ত ডিভাইসের জন্য ব্লুটুথ বৈশিষ্ট্য সমর্থনের উপর ভিত্তি করে ফিল্টারিং অক্ষম করে।
<manifest ...>
    <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>

আপনার অ্যাপ্লিকেশন দ্বারা প্রয়োজনীয় বৈশিষ্ট্য পরীক্ষা করুন

আপনি Android SDK-এ অন্তর্ভুক্ত aapt2 টুলটি ব্যবহার করতে পারেন, এটি নির্ধারণ করতে যে Google Play কীভাবে আপনার অ্যাপ্লিকেশানকে তার ঘোষিত বৈশিষ্ট্য এবং অনুমতিগুলির উপর ভিত্তি করে ফিল্টার করে। এটি করতে, dump badging কমান্ড দিয়ে aapt2 চালান। এর ফলে aapt2 আপনার অ্যাপ্লিকেশনের ম্যানিফেস্টকে পার্স করতে এবং আপনার অ্যাপ্লিকেশনের প্রয়োজনীয় বৈশিষ্ট্যগুলি নির্ধারণ করতে Google Play দ্বারা ব্যবহৃত একই নিয়মগুলি প্রয়োগ করে৷

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

  1. একটি স্বাক্ষরবিহীন APK হিসাবে আপনার অ্যাপ্লিকেশন তৈরি এবং রপ্তানি করুন৷ আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে বিকাশ করে থাকেন তবে গ্রেডলের সাথে আপনার অ্যাপ্লিকেশন তৈরি করুন, নিম্নরূপ:
    1. প্রকল্পটি খুলুন এবং রান > কনফিগারেশন সম্পাদনা করুন নির্বাচন করুন।
    2. রান/ডিবাগ কনফিগারেশন উইন্ডোর উপরের-বাম কোণে প্লাস চিহ্নটি নির্বাচন করুন।
    3. Gradle নির্বাচন করুন।
    4. নামে "আনসাইনড APK" লিখুন।
    5. Gradle প্রকল্প বিভাগ থেকে আপনার মডিউল চয়ন করুন।
    6. টাস্কে "একত্রিত" লিখুন।
    7. নতুন কনফিগারেশন সম্পূর্ণ করতে ঠিক আছে নির্বাচন করুন।
    8. নিশ্চিত করুন যে স্বাক্ষরবিহীন APK রান কনফিগারেশন টুলবারে নির্বাচন করা হয়েছে, এবং তারপর রান > রান 'আনসাইনড APK' নির্বাচন করুন।
    আপনি < ProjectName >/app/build/outputs/apk/ ডিরেক্টরিতে আপনার স্বাক্ষরবিহীন APK খুঁজে পেতে পারেন।
  2. aapt2 টুলটি সনাক্ত করুন, যদি এটি ইতিমধ্যে আপনার PATH-এ না থাকে। আপনি যদি SDK টুল r8 বা উচ্চতর ব্যবহার করেন, তাহলে আপনি < SDK >/build-tools/< tools version number > ডিরেক্টরিতে aapt2 খুঁজে পেতে পারেন।

    দ্রষ্টব্য: আপনাকে অবশ্যই aapt2 এর সংস্করণটি ব্যবহার করতে হবে যা উপলব্ধ সর্বশেষ বিল্ড-টুলস উপাদানগুলির জন্য সরবরাহ করা হয়েছে। আপনার কাছে সর্বশেষ বিল্ড-টুলস উপাদান না থাকলে, Android SDK ম্যানেজার ব্যবহার করে এটি ডাউনলোড করুন।

  3. এই সিনট্যাক্স ব্যবহার করে aapt2 চালান:
$ aapt2 dump badging <path_to_exported_.apk>

পূর্বে দেখানো দ্বিতীয় ব্লুটুথ উদাহরণের জন্য কমান্ড আউটপুটের একটি উদাহরণ এখানে:

$ ./aapt2 dump badging BTExample.apk
package: name='com.example.android.btexample' versionCode='' versionName=''
uses-permission:'android.permission.BLUETOOTH_ADMIN'
uses-feature:'android.hardware.bluetooth'
sdkVersion:'3'
targetSdkVersion:'5'
application: label='BT Example' icon='res/drawable/app_bt_ex.png'
launchable activity name='com.example.android.btexample.MyActivity'label='' icon=''
uses-feature:'android.hardware.touchscreen'
main
supports-screens: 'small' 'normal' 'large'
locales: '--_--'
densities: '160'

বৈশিষ্ট্য উল্লেখ

নিম্নলিখিত বিভাগগুলি হার্ডওয়্যার বৈশিষ্ট্য, সফ্টওয়্যার বৈশিষ্ট্য এবং নির্দিষ্ট বৈশিষ্ট্যের প্রয়োজনীয়তা বোঝায় এমন অনুমতিগুলির সেট সম্পর্কে রেফারেন্স তথ্য প্রদান করে।

হার্ডওয়্যার বৈশিষ্ট্য

এই বিভাগে বর্তমান প্ল্যাটফর্ম রিলিজ দ্বারা সমর্থিত হার্ডওয়্যার বৈশিষ্ট্য উপস্থাপন করা হয়। আপনার অ্যাপ্লিকেশানটি একটি হার্ডওয়্যার বৈশিষ্ট্য ব্যবহার করে বা প্রয়োজন তা নির্দেশ করতে, একটি android:name বৈশিষ্ট্যে "android.hardware" দিয়ে শুরু করে সংশ্লিষ্ট মানটি ঘোষণা করুন৷ প্রতিবার আপনি একটি হার্ডওয়্যার বৈশিষ্ট্য ঘোষণা করার সময়, একটি পৃথক <uses-feature> উপাদান ব্যবহার করুন।

অডিও হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.audio.low_latency
অ্যাপটি ডিভাইসের কম লেটেন্সি অডিও পাইপলাইন ব্যবহার করে, যা সাউন্ড ইনপুট বা আউটপুট প্রসেস করার সময় ল্যাগ এবং বিলম্ব কমায়।
android.hardware.audio.output
অ্যাপটি ডিভাইসের স্পিকার, অডিও জ্যাক, ব্লুটুথ স্ট্রিমিং ক্ষমতা বা অনুরূপ পদ্ধতি ব্যবহার করে শব্দ প্রেরণ করে।
android.hardware.audio.pro
অ্যাপটি ডিভাইসের হাই-এন্ড অডিও কার্যকারিতা এবং পারফরম্যান্স ক্ষমতা ব্যবহার করে।
android.hardware.microphone
অ্যাপটি ডিভাইসের মাইক্রোফোন ব্যবহার করে অডিও রেকর্ড করে।

ব্লুটুথ হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.bluetooth
অ্যাপটি ডিভাইসের ব্লুটুথ বৈশিষ্ট্যগুলি ব্যবহার করে, সাধারণত অন্যান্য ব্লুটুথ-সক্ষম ডিভাইসগুলির সাথে যোগাযোগ করতে।
android.hardware.bluetooth_le
অ্যাপটি ডিভাইসের ব্লুটুথ লো এনার্জি রেডিও বৈশিষ্ট্য ব্যবহার করে।

ক্যামেরা হার্ডওয়্যার বৈশিষ্ট্য

দ্রষ্টব্য: Google Play দ্বারা আপনার অ্যাপের অপ্রয়োজনীয় ফিল্টারিং প্রতিরোধ করতে, আপনার অ্যাপ ছাড়া কাজ করতে পারে এমন যেকোনো ক্যামেরা বৈশিষ্ট্যে android:required="false" যোগ করুন। অন্যথায়, Google Play বৈশিষ্ট্যটি প্রয়োজনীয় বলে ধরে নেয় এবং আপনার অ্যাপ অ্যাক্সেস করা থেকে বৈশিষ্ট্যটিকে সমর্থন করে না এমন ডিভাইসগুলিকে বাধা দেয়।

বড় পর্দা সমর্থন

কিছু বড় স্ক্রীন ডিভাইস সব ক্যামেরা বৈশিষ্ট্য সমর্থন করে না। Chromebook-এ সাধারণত পিছনে (বিশ্বমুখী) ক্যামেরা, অটোফোকাস বা ফ্ল্যাশ থাকে না। কিন্তু Chromebook-এ সামনের (ব্যবহারকারী-মুখী) ক্যামেরা থাকে এবং প্রায়শই বহিরাগত ক্যামেরার সাথে সংযুক্ত থাকে।

মৌলিক ক্যামেরা সমর্থন প্রদান করতে এবং আপনার অ্যাপটিকে যতটা সম্ভব ডিভাইসে উপলব্ধ করতে, আপনার অ্যাপ ম্যানিফেস্টে নিম্নলিখিত ক্যামেরা বৈশিষ্ট্য সেটিংস যোগ করুন:

<uses-feature android:name="android.hardware.camera.any" android:required="false" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />

আপনার অ্যাপের ব্যবহারের ক্ষেত্রে সমর্থন করার জন্য বৈশিষ্ট্য সেটিংস সামঞ্জস্য করুন। কিন্তু, আপনার অ্যাপটিকে সর্বাধিক সংখ্যক ডিভাইসে উপলব্ধ করতে, একটি বৈশিষ্ট্য থাকা আবশ্যক কিনা তা স্পষ্টভাবে উল্লেখ করার জন্য সর্বদা required বৈশিষ্ট্য অন্তর্ভুক্ত করুন৷

বৈশিষ্ট্য তালিকা
android.hardware.camera.any

অ্যাপটি ডিভাইসের একটি ক্যামেরা বা ডিভাইসের সাথে সংযুক্ত একটি বাহ্যিক ক্যামেরা ব্যবহার করে। android.hardware.camera বা android.hardware.camera.front এর পরিবর্তে এই বৈশিষ্ট্যটি ব্যবহার করুন যদি আপনার অ্যাপের জন্য ক্যামেরাটিকে যথাক্রমে পিছনে (বিশ্ব) মুখোমুখি বা সামনের (ব্যবহারকারী) মুখোমুখি হওয়ার প্রয়োজন না হয়।

CAMERA অনুমতি বোঝায় যে আপনার অ্যাপটি android.hardware.camera ও ব্যবহার করে৷ একটি ব্যাক ক্যামেরা একটি প্রয়োজনীয় বৈশিষ্ট্য যদি না android.hardware.camera android:required="false" এর সাথে ঘোষণা করা হয়৷

android.hardware.camera

অ্যাপটি ডিভাইসের পিছনের (বিশ্বমুখী) ক্যামেরা ব্যবহার করে।

সতর্কতা: Chromebook-এর মতো ডিভাইস যেগুলির সামনে শুধুমাত্র একটি (ব্যবহারকারী-মুখী) ক্যামেরা রয়েছে এই বৈশিষ্ট্যটি সমর্থন করে না৷ android.hardware.camera.any ব্যবহার করুন যদি আপনার অ্যাপ যেকোনো ক্যামেরা ব্যবহার করতে পারে, ক্যামেরা যে দিকেই মুখ করুক না কেন।

দ্রষ্টব্য: CAMERA অনুমতি বোঝায় যে একটি পিছনের ক্যামেরা একটি প্রয়োজনীয় বৈশিষ্ট্য৷ যখন আপনার অ্যাপ ম্যানিফেস্টে CAMERA অনুমতি অন্তর্ভুক্ত থাকে তখন Google Play-তে সঠিক ফিল্টারিং নিশ্চিত করতে সাহায্য করার জন্য, স্পষ্টভাবে উল্লেখ করুন যে আপনার অ্যাপ camera বৈশিষ্ট্য ব্যবহার করে এবং এটি প্রয়োজনীয় কিনা তা নির্দেশ করুন, যেমন:
<uses-feature android:name="android.hardware.camera" android:required="false" />

android.hardware.camera.front

অ্যাপটি ডিভাইসের সামনের (ব্যবহারকারী-মুখী) ক্যামেরা ব্যবহার করে।

CAMERA অনুমতি বোঝায় যে আপনার অ্যাপটি android.hardware.camera ও ব্যবহার করে৷ একটি ব্যাক ক্যামেরা একটি প্রয়োজনীয় বৈশিষ্ট্য যদি না android.hardware.camera android:required="false" এর সাথে ঘোষণা করা হয়৷

সতর্কতা: যদি আপনার অ্যাপ android.hardware.camera.front ব্যবহার করে কিন্তু android.required="false" সহ android.hardware.camera স্পষ্টভাবে ঘোষণা না করে, তাহলে যে ডিভাইসগুলিতে পিছনের ক্যামেরা নেই (যেমন Chromebooks) Google দ্বারা ফিল্টার করা হয় খেলা. যদি আপনার অ্যাপ শুধুমাত্র সামনের ক্যামেরা সহ ডিভাইসগুলিকে সমর্থন করে, তাহলে অপ্রয়োজনীয় ফিল্টারিং প্রতিরোধ করতে android.required android.required="false" সহ android.hardware.camera ঘোষণা করুন৷

android.hardware.camera.external

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

CAMERA অনুমতি বোঝায় যে আপনার অ্যাপটি android.hardware.camera ও ব্যবহার করে৷ একটি ব্যাক ক্যামেরা একটি প্রয়োজনীয় বৈশিষ্ট্য যদি না android.hardware.camera android:required="false" এর সাথে ঘোষণা করা হয়৷

android.hardware.camera.autofocus

অ্যাপটি ডিভাইসের ক্যামেরা দ্বারা সমর্থিত অটোফোকাস বৈশিষ্ট্য ব্যবহার করে।

দ্রষ্টব্য: CAMERA অনুমতি বোঝায় যে অটোফোকাস একটি প্রয়োজনীয় বৈশিষ্ট্য৷ যখন আপনার অ্যাপ ম্যানিফেস্টে CAMERA অনুমতি অন্তর্ভুক্ত থাকে তখন Google Play-তে সঠিক ফিল্টারিং নিশ্চিত করতে, স্পষ্টভাবে উল্লেখ করুন যে আপনার অ্যাপটি অটোফোকাস বৈশিষ্ট্য ব্যবহার করে এবং এটি প্রয়োজনীয় কিনা তা নির্দেশ করে, যেমন:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

android.hardware.camera.flash

অ্যাপটি ডিভাইসের ক্যামেরা দ্বারা সমর্থিত ফ্ল্যাশ বৈশিষ্ট্য ব্যবহার করে।

android.hardware.camera.capability.manual_post_processing

অ্যাপটি ডিভাইসের ক্যামেরা দ্বারা সমর্থিত MANUAL_POST_PROCESSING বৈশিষ্ট্য ব্যবহার করে।

এই বৈশিষ্ট্যটি আপনার অ্যাপটিকে ক্যামেরার স্বয়ংক্রিয় সাদা ব্যালেন্স কার্যকারিতা ওভাররাইড করতে দেয়। android.colorCorrection.transform , android.colorCorrection.gains এবং TRANSFORM_MATRIX এর একটি android.colorCorrection.mode ব্যবহার করুন।

android.hardware.camera.capability.manual_sensor

অ্যাপটি ডিভাইসের ক্যামেরা দ্বারা সমর্থিত MANUAL_SENSOR বৈশিষ্ট্য ব্যবহার করে।

এই বৈশিষ্ট্যটি অটো এক্সপোজার লকিং ( android.control.aeLock ) এর জন্য সমর্থন বোঝায়, যা ক্যামেরার এক্সপোজার সময় এবং সংবেদনশীলতা নির্দিষ্ট মানগুলিতে স্থির থাকতে সক্ষম করে।

android.hardware.camera.capability.raw

অ্যাপটি ডিভাইসের ক্যামেরা দ্বারা সমর্থিত RAW বৈশিষ্ট্য ব্যবহার করে।

এই বৈশিষ্ট্যটি বোঝায় যে ডিভাইসটি DNG (কাঁচা) ফাইল সংরক্ষণ করতে পারে। ডিভাইসের ক্যামেরা সরাসরি কাঁচা ছবিগুলি প্রক্রিয়া করার জন্য আপনার অ্যাপের জন্য প্রয়োজনীয় ডিএনজি-সম্পর্কিত মেটাডেটা সরবরাহ করে।

android.hardware.camera.level.full
অ্যাপটি ডিভাইসের অন্তত একটি ক্যামেরা দ্বারা প্রদত্ত FULL স্তরের ইমেজ ক্যাপচার সমর্থন ব্যবহার করে। FULL সমর্থনের মধ্যে রয়েছে বার্স্ট-ক্যাপচার ক্ষমতা, প্রতি ফ্রেম নিয়ন্ত্রণ এবং ম্যানুয়াল পোস্ট-প্রসেসিং নিয়ন্ত্রণ। INFO_SUPPORTED_HARDWARE_LEVEL_FULL দেখুন।

ডিভাইস UI হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.type.automotive

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

দ্রষ্টব্য: যেহেতু ব্যবহারকারী এই ধরনের অ্যাপ UI ব্যবহার করার সময় গাড়ি চালাচ্ছেন, অ্যাপটিকে অবশ্যই ড্রাইভারের বিভ্রান্তি কমাতে হবে।

android.hardware.type.television

(অপ্রচলিত; পরিবর্তে android.software.leanback ব্যবহার করুন।)

অ্যাপটি একটি টেলিভিশনে এর UI দেখানোর জন্য ডিজাইন করা হয়েছে। এই বৈশিষ্ট্যটি "টেলিভিশন"কে একটি সাধারণ লিভিং-রুমের টেলিভিশন অভিজ্ঞতা হিসাবে সংজ্ঞায়িত করে: একটি বড় স্ক্রিনে প্রদর্শিত অ্যাপ, ব্যবহারকারী অনেক দূরে বসে আছে এবং ইনপুটের প্রভাবশালী রূপটি মাউস, পয়েন্টারের পরিবর্তে ডি-প্যাডের মতো কিছু। বা স্পর্শ ডিভাইস।

android.hardware.type.watch
অ্যাপটি একটি ঘড়িতে এর UI দেখানোর জন্য ডিজাইন করা হয়েছে। একটি ঘড়ি শরীরে পরা হয়, যেমন কব্জিতে। এটির সাথে ইন্টারঅ্যাক্ট করার সময় ব্যবহারকারী ডিভাইসটির খুব কাছাকাছি থাকে।
android.hardware.type.pc

অ্যাপটিকে Chromebook-এ এর UI দেখানোর জন্য ডিজাইন করা হয়েছে। এই বৈশিষ্ট্যটি মাউস এবং টাচপ্যাডের জন্য ইনপুট এমুলেশন অক্ষম করে, যেহেতু Chromebook গুলি মাউস এবং টাচপ্যাড হার্ডওয়্যার ব্যবহার করে৷ মাউস ইনপুট দেখুন।

দ্রষ্টব্য: এই উপাদানটির জন্য required="false" সেট করুন; অন্যথায়, Google Play Store আপনার অ্যাপকে Chromebook ছাড়া অন্য ডিভাইসে অনুপলব্ধ করে তোলে।

ফিঙ্গারপ্রিন্ট হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.fingerprint
অ্যাপটি ডিভাইসের বায়োমেট্রিক হার্ডওয়্যার ব্যবহার করে আঙুলের ছাপ পড়ে।

গেমপ্যাড হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.gamepad
অ্যাপটি ডিভাইস থেকে বা একটি সংযুক্ত গেমপ্যাড থেকে গেম কন্ট্রোলার ইনপুট ক্যাপচার করে।

ইনফ্রারেড হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.consumerir
অ্যাপটি ডিভাইসের ইনফ্রারেড (IR) ক্ষমতা ব্যবহার করে, সাধারণত অন্যান্য ভোক্তা IR ডিভাইসের সাথে যোগাযোগ করতে।

অবস্থান হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.location
অ্যাপটি অবস্থান নির্ধারণের জন্য ডিভাইসে এক বা একাধিক বৈশিষ্ট্য ব্যবহার করে, যেমন GPS অবস্থান, নেটওয়ার্ক অবস্থান বা সেল অবস্থান।
android.hardware.location.gps

অ্যাপটি ডিভাইসে গ্লোবাল পজিশনিং সিস্টেম (GPS) রিসিভার থেকে প্রাপ্ত সুনির্দিষ্ট অবস্থান স্থানাঙ্ক ব্যবহার করে।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ বোঝায় যে এটি android.hardware.location বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই মূল বৈশিষ্ট্যটি android:required="false" বৈশিষ্ট্যের সাথে ঘোষণা করা হয়।

android.hardware.location.network

অ্যাপটি ডিভাইসে সমর্থিত নেটওয়ার্ক-ভিত্তিক জিওলোকেশন সিস্টেম থেকে প্রাপ্ত মোটা অবস্থানের স্থানাঙ্ক ব্যবহার করে।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ বোঝায় যে এটি android.hardware.location বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই মূল বৈশিষ্ট্যটি android:required="false" বৈশিষ্ট্যের সাথে ঘোষণা করা হয়।

NFC হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.nfc
অ্যাপটি ডিভাইসের নিয়ার-ফিল্ড কমিউনিকেশন (NFC) রেডিও বৈশিষ্ট্য ব্যবহার করে।
android.hardware.nfc.hce

অ্যাপটি ডিভাইসে হোস্ট করা NFC কার্ড ইমুলেশন ব্যবহার করে।

OpenGL ES হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.opengles.aep
অ্যাপটি ডিভাইসে ইনস্টল করা OpenGL ES Android এক্সটেনশন প্যাক ব্যবহার করে।

সেন্সর হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.sensor.accelerometer
অ্যাপটি ডিভাইসের বর্তমান অভিযোজন শনাক্ত করতে ডিভাইসের অ্যাক্সিলোমিটার থেকে মোশন রিডিং ব্যবহার করে। উদাহরণস্বরূপ, প্রতিকৃতি এবং ল্যান্ডস্কেপ অভিযোজনের মধ্যে কখন পরিবর্তন করতে হবে তা নির্ধারণ করতে একটি অ্যাপ অ্যাক্সিলোমিটার রিডিং ব্যবহার করতে পারে।
android.hardware.sensor.ambient_temperature
অ্যাপটি ডিভাইসের পরিবেষ্টিত (পরিবেশগত) তাপমাত্রা সেন্সর ব্যবহার করে। উদাহরণস্বরূপ, একটি আবহাওয়া অ্যাপ ইনডোর বা আউটডোর তাপমাত্রা রিপোর্ট করতে পারে।
android.hardware.sensor.barometer
অ্যাপটি ডিভাইসের ব্যারোমিটার ব্যবহার করে। উদাহরণস্বরূপ, একটি আবহাওয়া অ্যাপ্লিকেশন বায়ু চাপ রিপোর্ট করতে পারে।
android.hardware.sensor.compass
অ্যাপটি ডিভাইসের ম্যাগনেটোমিটার (কম্পাস) ব্যবহার করে। উদাহরণস্বরূপ, একটি নেভিগেশন অ্যাপ ব্যবহারকারীর মুখোমুখি বর্তমান দিকটি দেখাতে পারে।
android.hardware.sensor.gyroscope
অ্যাপটি ঘূর্ণন এবং মোচড় সনাক্ত করতে ডিভাইসের জাইরোস্কোপ ব্যবহার করে, একটি ছয়-অক্ষ অভিযোজন সিস্টেম তৈরি করে। এই সেন্সর ব্যবহার করে, একটি অ্যাপ যখন পোর্ট্রেট এবং ল্যান্ডস্কেপ ওরিয়েন্টেশনের মধ্যে স্যুইচ করার প্রয়োজন হয় তখন আরও মসৃণভাবে সনাক্ত করতে পারে।
android.hardware.sensor.hifi_sensors
অ্যাপটি ডিভাইসের উচ্চ বিশ্বস্ততা (হাই-ফাই) সেন্সর ব্যবহার করে। উদাহরণস্বরূপ, একটি গেমিং অ্যাপ ব্যবহারকারীর উচ্চ-নির্ভুল গতিবিধি সনাক্ত করতে পারে।
android.hardware.sensor.heartrate
অ্যাপটি ডিভাইসের হার্ট রেট মনিটর ব্যবহার করে। উদাহরণস্বরূপ, একটি ফিটনেস অ্যাপ সময়ের সাথে সাথে ব্যবহারকারীর হৃদস্পন্দনের প্রবণতা রিপোর্ট করতে পারে।
android.hardware.sensor.heartrate.ecg
অ্যাপটি ডিভাইসের ইলেক্ট্রোকার্ডিওগ্রাম (ECG) হার্ট রেট সেন্সর ব্যবহার করে। উদাহরণস্বরূপ, একটি ফিটনেস অ্যাপ ব্যবহারকারীর হার্ট রেট সম্পর্কে আরও বিশদ তথ্য প্রতিবেদন করতে পারে।
android.hardware.sensor.light
অ্যাপটি ডিভাইসের লাইট সেন্সর ব্যবহার করে। উদাহরণস্বরূপ, একটি অ্যাপ পরিবেষ্টিত আলোর অবস্থার উপর ভিত্তি করে দুটি রঙের স্কিমগুলির একটি প্রদর্শন করতে পারে।
android.hardware.sensor.proximity
অ্যাপটি ডিভাইসের প্রক্সিমিটি সেন্সর ব্যবহার করে। উদাহরণস্বরূপ, একটি টেলিফোনি অ্যাপ ডিভাইসের স্ক্রীন বন্ধ করে দিতে পারে যখন অ্যাপটি শনাক্ত করে যে ব্যবহারকারী ডিভাইসটিকে তাদের শরীরের কাছাকাছি ধরে রেখেছে।
android.hardware.sensor.relative_humidity
অ্যাপটি ডিভাইসের আপেক্ষিক আর্দ্রতা সেন্সর ব্যবহার করে। উদাহরণস্বরূপ, একটি আবহাওয়া অ্যাপ বর্তমান শিশিরবিন্দু গণনা করতে এবং রিপোর্ট করতে আর্দ্রতা ব্যবহার করতে পারে।
android.hardware.sensor.stepcounter
অ্যাপটি ডিভাইসের স্টেপ কাউন্টার ব্যবহার করে। উদাহরণস্বরূপ, একটি ফিটনেস অ্যাপ একজন ব্যবহারকারীকে তাদের দৈনিক পদক্ষেপ গণনার লক্ষ্য অর্জনের জন্য কতগুলি পদক্ষেপ নিতে হবে তা রিপোর্ট করতে পারে।
android.hardware.sensor.stepdetector
অ্যাপটি ডিভাইসের স্টেপ ডিটেক্টর ব্যবহার করে। উদাহরণস্বরূপ, একটি ফিটনেস অ্যাপ ব্যবহারকারী যে ধরনের ব্যায়াম করছেন তা অনুমান করতে ধাপগুলির মধ্যে সময়ের ব্যবধান ব্যবহার করতে পারে।

স্ক্রীন হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.screen.landscape
android.hardware.screen.portrait

পোর্ট্রেট বা ল্যান্ডস্কেপ ওরিয়েন্টেশন ব্যবহার করার জন্য অ্যাপটির ডিভাইসের প্রয়োজন। যদি আপনার অ্যাপ উভয় অভিযোজন সমর্থন করে, তাহলে আপনাকে উভয় বৈশিষ্ট্য ঘোষণা করতে হবে না।

উদাহরণস্বরূপ, যদি আপনার অ্যাপের পোর্ট্রেট ওরিয়েন্টেশনের প্রয়োজন হয়, তাহলে নিম্নলিখিত বৈশিষ্ট্যটি ঘোষণা করুন যাতে শুধুমাত্র সেই ডিভাইসগুলি যেগুলি প্রতিকৃতি অভিযোজন সমর্থন করে, সবসময় বা ব্যবহারকারীর পছন্দ অনুসারে, আপনার অ্যাপ চালাতে পারে:

<uses-feature android:name="android.hardware.screen.portrait" />

উভয় অভিযোজন ডিফল্টরূপে প্রয়োজন হয় না বলে ধরে নেওয়া হয়, তাই আপনার অ্যাপ এমন ডিভাইসে ইনস্টল করতে পারে যা এক বা উভয় অভিযোজন সমর্থন করে। যাইহোক, যদি আপনার কোনো অ্যাক্টিভিটি android:screenOrientation অ্যাট্রিবিউট ব্যবহার করে একটি নির্দিষ্ট ওরিয়েন্টেশনে চালানোর অনুরোধ করে, তাহলে এই ঘোষণাটি বোঝায় যে আপনার অ্যাপের সেই অভিযোজন প্রয়োজন।

উদাহরণস্বরূপ, যদি আপনি "landscape" , "reverseLandscape" বা "sensorLandscape" এর সাথে android:screenOrientation ঘোষণা করেন, তাহলে আপনার অ্যাপটি শুধুমাত্র ল্যান্ডস্কেপ ওরিয়েন্টেশন সমর্থন করে এমন ডিভাইসগুলিতে উপলব্ধ।

একটি সর্বোত্তম অনুশীলন হিসাবে, একটি <uses-feature> উপাদান ব্যবহার করে এই অভিযোজনের জন্য আপনার প্রয়োজনীয়তা ঘোষণা করুন। আপনি যদি android:screenOrientation ব্যবহার করে আপনার ক্রিয়াকলাপের জন্য একটি অভিযোজন ঘোষণা করেন কিন্তু আসলে এটির প্রয়োজন না হয়, তাহলে আপনি একটি <uses-feature> উপাদানের সাথে ওরিয়েন্টেশন ঘোষণা করে এবং android:required="false" অন্তর্ভুক্ত করে প্রয়োজনীয়তা নিষ্ক্রিয় করতে পারেন।

পশ্চাদগামী সামঞ্জস্যের জন্য, Android 3.1 (API স্তর 12) বা তার নিচের চলমান যেকোনো ডিভাইস ল্যান্ডস্কেপ এবং পোর্ট্রেট অভিযোজন উভয়কেই সমর্থন করে।

টেলিফোনি হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.telephony
অ্যাপটি ডিভাইসের টেলিফোনি বৈশিষ্ট্যগুলি ব্যবহার করে, যেমন টেলিফোনি রেডিও ডেটা যোগাযোগ পরিষেবাগুলির সাথে৷
android.hardware.telephony.cdma

অ্যাপটি কোড ডিভিশন মাল্টিপল অ্যাক্সেস (CDMA) টেলিফোনি রেডিও সিস্টেম ব্যবহার করে।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ বোঝায় যে এটি android.hardware.telephony বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই মূল বৈশিষ্ট্যটি android:required="false" এর সাথে ঘোষণা করা হয়।

android.hardware.telephony.gsm

অ্যাপটি গ্লোবাল সিস্টেম ফর মোবাইল কমিউনিকেশনস (জিএসএম) টেলিফোনি রেডিও সিস্টেম ব্যবহার করে।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ বোঝায় যে এটি android.hardware.telephony বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই মূল বৈশিষ্ট্যটি android:required="false" এর সাথে ঘোষণা করা হয়।

টাচস্ক্রিন হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.faketouch

অ্যাপটি বেসিক টাচ ইন্টারঅ্যাকশন ইভেন্ট ব্যবহার করে, যেমন ট্যাপ করা এবং টেনে আনা।

যখন প্রয়োজন হিসাবে ঘোষণা করা হয়, তখন এই বৈশিষ্ট্যটি নির্দেশ করে যে অ্যাপটি শুধুমাত্র তখনই একটি ডিভাইসের সাথে সামঞ্জস্যপূর্ণ যদি সেই ডিভাইসটিতে একটি অনুকরণ করা "ফেক টাচ" টাচস্ক্রিন থাকে বা একটি আসল টাচস্ক্রিন থাকে।

একটি ডিভাইস যা একটি জাল টাচ ইন্টারফেস প্রদান করে একটি ব্যবহারকারী ইনপুট সিস্টেম প্রদান করে যা একটি টাচস্ক্রীনের ক্ষমতার একটি উপসেট অনুকরণ করে। উদাহরণস্বরূপ, একটি মাউস বা রিমোট কন্ট্রোল একটি অন-স্ক্রীন কার্সার চালাতে পারে।

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

অ্যাপগুলির জন্য ডিফল্টরূপে android.hardware.faketouch বৈশিষ্ট্য প্রয়োজন। আপনি যদি চান যে আপনার অ্যাপটি শুধুমাত্র একটি টাচস্ক্রিন আছে এমন ডিভাইসের মধ্যে সীমাবদ্ধ থাকুক, তাহলে আপনাকে স্পষ্টভাবে ঘোষণা করতে হবে যে নিচের মত টাচস্ক্রিন প্রয়োজন:

<uses-feature android:name="android.hardware.touchscreen"
    android:required="true" />

যে সমস্ত অ্যাপগুলির স্পষ্টভাবে android.hardware.touchscreen প্রয়োজন হয় না, নিম্নলিখিত উদাহরণে দেখানো হয়েছে, এছাড়াও android.hardware.faketouch সহ ডিভাইসগুলিতে কাজ করে৷

<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
android.hardware.faketouch.multitouch.distinct

অ্যাপটি একটি নকল স্পর্শ ইন্টারফেসে দুই বা তার বেশি স্বতন্ত্র "আঙ্গুল" ট্র্যাক করে। এটি android.hardware.faketouch বৈশিষ্ট্যের একটি সুপারসেট। যখন প্রয়োজন হিসাবে ঘোষণা করা হয়, তখন এই বৈশিষ্ট্যটি নির্দেশ করে যে অ্যাপটি একটি ডিভাইসের সাথে সামঞ্জস্যপূর্ণ তখনই যদি সেই ডিভাইসটি দুটি বা ততোধিক আঙ্গুলের স্বতন্ত্র ট্র্যাকিং অনুকরণ করে বা একটি প্রকৃত টাচস্ক্রিন থাকে।

android.hardware.touchscreen.multitouch.distinct দ্বারা সংজ্ঞায়িত স্বতন্ত্র মাল্টিটাচের বিপরীতে, একটি নকল টাচ ইন্টারফেসের সাথে স্বতন্ত্র মাল্টিটাচ সমর্থন করে এমন ইনপুট ডিভাইসগুলি সমস্ত দুই-আঙ্গুলের অঙ্গভঙ্গি সমর্থন করে না, কারণ ইনপুটটি পর্দায় কার্সার আন্দোলনে রূপান্তরিত হয়। অর্থাৎ, এই জাতীয় ডিভাইসে একক আঙুলের অঙ্গভঙ্গিগুলি একটি কার্সারকে সরিয়ে দেয়, দুই-আঙ্গুলের সোয়াইপগুলি একক-আঙ্গুলের স্পর্শের ঘটনা ঘটায় এবং অন্যান্য দুই-আঙুলের অঙ্গভঙ্গিগুলি সংশ্লিষ্ট দুই-আঙুলের স্পর্শের ঘটনাগুলিকে ট্রিগার করে।

একটি ডিভাইস যা কার্সার চলাচলের জন্য একটি দুই-আঙ্গুলের স্পর্শ ট্র্যাকপ্যাড প্রদান করে এই বৈশিষ্ট্যটিকে সমর্থন করতে পারে।

android.hardware.faketouch.multitouch.jazzhand

অ্যাপটি একটি নকল স্পর্শ ইন্টারফেসে পাঁচ বা তার বেশি স্বতন্ত্র "আঙ্গুল" ট্র্যাক করে। এটি android.hardware.faketouch বৈশিষ্ট্যের একটি সুপারসেট। যখন প্রয়োজন হিসাবে ঘোষণা করা হয়, তখন এই বৈশিষ্ট্যটি নির্দেশ করে যে অ্যাপটি শুধুমাত্র তখনই একটি ডিভাইসের সাথে সামঞ্জস্যপূর্ণ যদি সেই ডিভাইসটি পাঁচ বা তার বেশি আঙ্গুলের স্বতন্ত্র ট্র্যাকিং অনুকরণ করে বা একটি প্রকৃত টাচস্ক্রিন থাকে।

android.hardware.touchscreen.multitouch.jazzhand দ্বারা সংজ্ঞায়িত স্বতন্ত্র মাল্টিটাচের বিপরীতে, ইনপুট ডিভাইসগুলি যা একটি জাল টাচ ইন্টারফেসের সাথে জাজহ্যান্ড মাল্টিচাকে সমর্থন করে সমস্ত পাঁচ-আঙুলের অঙ্গভঙ্গি সমর্থন করে না, কারণ ইনপুটটি স্ক্রিনে কার্সার চলাচলে রূপান্তরিত হয়। এটি হ'ল, এই জাতীয় ডিভাইসে একক আঙুলের অঙ্গভঙ্গিগুলি একটি কার্সারকে সরিয়ে দেয়, মাল্টি-আঙুলের অঙ্গভঙ্গিগুলি একক-আঙুলের স্পর্শ ইভেন্টগুলি ঘটে এবং অন্যান্য মাল্টি-আঙুলের অঙ্গভঙ্গিগুলি সংশ্লিষ্ট মাল্টি-আঙুলের স্পর্শ ইভেন্টগুলিকে ট্রিগার করে।

কার্সার আন্দোলনের জন্য পাঁচ-আঙুলের টাচ ট্র্যাকপ্যাড সরবরাহ করে এমন একটি ডিভাইস এই বৈশিষ্ট্যটিকে সমর্থন করতে পারে।

android.hardware.touchscreen

অ্যাপ্লিকেশনটি এমন অঙ্গভঙ্গিগুলির জন্য ডিভাইসের টাচস্ক্রিন ক্ষমতা ব্যবহার করে যা বেসিক স্পর্শ ইভেন্টগুলির চেয়ে বেশি ইন্টারেক্টিভ, যেমন ঝাঁকুনির মতো। এটি android.hardware.faketouch বৈশিষ্ট্যের একটি সুপারসেট।

ডিফল্টরূপে, সমস্ত অ্যাপ্লিকেশনগুলির জন্য এই বৈশিষ্ট্যটির প্রয়োজন হয় এবং তাই এমন ডিভাইসগুলিতে উপলভ্য নয় যা কেবলমাত্র একটি অনুকরণযুক্ত "জাল টাচ" ইন্টারফেস সরবরাহ করে। আপনি আপনার অ্যাপ্লিকেশনটিকে এমন ডিভাইসগুলিতে উপলব্ধ করতে পারেন যা একটি জাল টাচ ইন্টারফেস সরবরাহ করে, বা এমন ডিভাইসগুলিতেও যা কেবলমাত্র একটি ডি-প্যাড কন্ট্রোলার সরবরাহ করে, স্পষ্টভাবে ঘোষণা করে যে android.hardware.touchscreen সাথে android:required="false" আপনার অ্যাপ্লিকেশনটি ব্যবহার করে তবে এই ঘোষণাটি যুক্ত করুন, তবে প্রয়োজন না হয়, একটি বাস্তব টাচস্ক্রিন ইন্টারফেস। যে সমস্ত অ্যাপ্লিকেশনগুলিতে স্পষ্টভাবে android.hardware.touchscreen প্রয়োজন হয় না তাদের জন্য android.hardware.faketouch সহ ডিভাইসেও কাজ করে।

যদি আপনার অ্যাপ্লিকেশনটিতে প্রকৃতপক্ষে একটি স্পর্শ ইন্টারফেসের প্রয়োজন হয় যেমন যেমন ঝাঁকুনির মতো আরও উন্নত স্পর্শ অঙ্গভঙ্গি করা, তবে আপনাকে কোনও টাচ ইন্টারফেস বৈশিষ্ট্যগুলি ঘোষণা করার দরকার নেই, কারণ সেগুলি ডিফল্টরূপে প্রয়োজনীয়। তবে, আপনি যদি আপনার অ্যাপ্লিকেশনটি ব্যবহার করেন এমন সমস্ত বৈশিষ্ট্য স্পষ্টভাবে ঘোষণা করেন তবে এটি সেরা।

আপনার যদি আরও জটিল টাচ ইন্টারঅ্যাকশন যেমন মাল্টি-আঙুলের অঙ্গভঙ্গিগুলির প্রয়োজন হয় তবে ঘোষণা করুন যে আপনার অ্যাপ্লিকেশনটি উন্নত টাচস্ক্রিন বৈশিষ্ট্যগুলি ব্যবহার করে।

android.hardware.touchscreen.multitouch

অ্যাপ্লিকেশনটি ডিভাইসের বেসিক টু-পয়েন্ট মাল্টিটচ ক্ষমতাগুলি ব্যবহার করে, যেমন চিমটি অঙ্গভঙ্গির জন্য, তবে অ্যাপটিকে স্বাধীনভাবে স্পর্শগুলি ট্র্যাক করার দরকার নেই। এটি android.hardware.touchscreen বৈশিষ্ট্যের একটি সুপারসেট।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ্লিকেশন বোঝায় যে এটি android.hardware.touchscreen বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই পিতামাতার বৈশিষ্ট্যটি android:required="false"

android.hardware.touchscreen.multitouch.distinct

অ্যাপ্লিকেশনটি স্বাধীনভাবে দুটি বা ততোধিক পয়েন্ট ট্র্যাক করার জন্য ডিভাইসের উন্নত মাল্টিটচ ক্ষমতা ব্যবহার করে। এই বৈশিষ্ট্যটি android.hardware.touchscreen.multitouch বৈশিষ্ট্যের একটি সুপারসেট।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ্লিকেশন বোঝায় যে এটি android.hardware.touchscreen.multitouch বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই পিতামাতার বৈশিষ্ট্যটি android:required="false"

android.hardware.touchscreen.multitouch.jazzhand

অ্যাপটি পাঁচ বা ততোধিক পয়েন্ট স্বাধীনভাবে ট্র্যাক করার জন্য ডিভাইসের উন্নত মাল্টিটচ ক্ষমতা ব্যবহার করে। এই বৈশিষ্ট্যটি android.hardware.touchscreen.multitouch বৈশিষ্ট্যের একটি সুপারসেট।

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ্লিকেশন বোঝায় যে এটি android.hardware.touchscreen.multitouch বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই পিতামাতার বৈশিষ্ট্যটি android:required="false"

ইউএসবি হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.usb.accessory
অ্যাপ্লিকেশনটি ইউএসবি ডিভাইস হিসাবে আচরণ করে এবং ইউএসবি হোস্টের সাথে সংযুক্ত হয়।
android.hardware.usb.host
অ্যাপ্লিকেশনটি ডিভাইসের সাথে সংযুক্ত ইউএসবি আনুষাঙ্গিকগুলি ব্যবহার করে। ডিভাইসটি ইউএসবি হোস্ট হিসাবে কাজ করে।

ভলকান হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.vulkan.compute
অ্যাপ্লিকেশনটি ভলকান গণনা বৈশিষ্ট্য ব্যবহার করে। এই বৈশিষ্ট্যটি ইঙ্গিত দেয় যে অ্যাপ্লিকেশনটির হার্ডওয়্যার-ত্বরণযুক্ত ভলকান বাস্তবায়ন প্রয়োজন। বৈশিষ্ট্য সংস্করণটি নির্দেশ করে যে কোন স্তরের al চ্ছিক গণনাগুলির বৈশিষ্ট্যগুলি অ্যাপ্লিকেশনটির জন্য ভলকান 1.0 প্রয়োজনীয়তার বাইরে প্রয়োজন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটির জন্য ভলকান গণনা স্তর 0 সমর্থন প্রয়োজন হয় তবে নিম্নলিখিত বৈশিষ্ট্যটি ঘোষণা করুন:
<uses-feature
    android:name="android.hardware.vulkan.compute"
    android:version="0"
    android:required="true" />
বৈশিষ্ট্য সংস্করণ সম্পর্কে আরও তথ্যের জন্য, FEATURE_VULKAN_HARDWARE_COMPUTE দেখুন।
android.hardware.vulkan.level
অ্যাপ্লিকেশনটি ভলকান স্তরের বৈশিষ্ট্যগুলি ব্যবহার করে। এই বৈশিষ্ট্যটি ইঙ্গিত দেয় যে অ্যাপ্লিকেশনটির হার্ডওয়্যার-ত্বরণযুক্ত ভলকান বাস্তবায়ন প্রয়োজন। বৈশিষ্ট্য সংস্করণটি নির্দেশ করে যে কোন স্তরটি al চ্ছিক হার্ডওয়ারের বৈশিষ্ট্যগুলি অ্যাপ্লিকেশনটির প্রয়োজনীয় বৈশিষ্ট্যযুক্ত। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটির জন্য ভলকান হার্ডওয়্যার স্তর 0 সমর্থন প্রয়োজন হয় তবে নিম্নলিখিত বৈশিষ্ট্যটি ঘোষণা করুন:
<uses-feature
    android:name="android.hardware.vulkan.level"
    android:version="0"
    android:required="true" />
বৈশিষ্ট্য সংস্করণ সম্পর্কে আরও তথ্যের জন্য, FEATURE_VULKAN_HARDWARE_LEVEL দেখুন।
android.hardware.vulkan.version
অ্যাপ্লিকেশনটি ভলকান ব্যবহার করে। এই বৈশিষ্ট্যটি ইঙ্গিত দেয় যে অ্যাপ্লিকেশনটির হার্ডওয়্যার-ত্বরণযুক্ত ভলকান বাস্তবায়ন প্রয়োজন। বৈশিষ্ট্য সংস্করণটি ভলকান এপিআইয়ের ন্যূনতম সংস্করণটি অ্যাপ্লিকেশনটির প্রয়োজনীয় সমর্থন করে। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটির জন্য ভলকান 1.0 সমর্থন প্রয়োজন হয় তবে নিম্নলিখিত বৈশিষ্ট্যটি ঘোষণা করুন:
<uses-feature
    android:name="android.hardware.vulkan.version"
    android:version="0x400003"
    android:required="true" />
বৈশিষ্ট্য সংস্করণ সম্পর্কে আরও তথ্যের জন্য, FEATURE_VULKAN_HARDWARE_VERSION দেখুন।

Wi-Fi হার্ডওয়্যার বৈশিষ্ট্য

android.hardware.wifi
অ্যাপ্লিকেশনটি ডিভাইসে 802.11 নেটওয়ার্কিং (ওয়াই-ফাই) বৈশিষ্ট্য ব্যবহার করে।
android.hardware.wifi.direct
অ্যাপ্লিকেশনটি ডিভাইসে Wi-Fi সরাসরি নেটওয়ার্কিং বৈশিষ্ট্যগুলি ব্যবহার করে।

সফ্টওয়্যার বৈশিষ্ট্য

এই বিভাগটি সর্বাধিক বর্তমান প্ল্যাটফর্ম রিলিজ দ্বারা সমর্থিত সফ্টওয়্যার বৈশিষ্ট্যগুলি উপস্থাপন করে। আপনার অ্যাপ্লিকেশনটি একটি সফ্টওয়্যার বৈশিষ্ট্য ব্যবহার করে বা প্রয়োজন তা নির্দেশ করতে, "android.software" দিয়ে শুরু করে একটি android:name বৈশিষ্ট্য। প্রতিবার আপনি যখন কোনও সফ্টওয়্যার বৈশিষ্ট্য ঘোষণা করেন, একটি পৃথক <uses-feature> উপাদান ব্যবহার করুন।

যোগাযোগ সফ্টওয়্যার বৈশিষ্ট্য

android.software.sip
অ্যাপ্লিকেশনটি সেশন ইনিশিয়েশন প্রোটোকল (এসআইপি) পরিষেবাগুলি ব্যবহার করে। এসআইপি ব্যবহার করে, অ্যাপটি ভিডিও কনফারেন্সিং এবং তাত্ক্ষণিক বার্তাগুলির মতো ইন্টারনেট টেলিফোনি অপারেশনগুলিকে সমর্থন করতে পারে।
android.software.sip.voip

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

এই বৈশিষ্ট্যটি ব্যবহার করে, একটি অ্যাপ্লিকেশন বোঝায় যে এটি android.software.sip বৈশিষ্ট্যটিও ব্যবহার করে, যদি না এই পিতামাতার বৈশিষ্ট্যটি android:required="false"

android.software.webview
অ্যাপ্লিকেশনটি ইন্টারনেট থেকে সামগ্রী প্রদর্শন করে।

কাস্টম ইনপুট সফ্টওয়্যার বৈশিষ্ট্য

android.software.input_methods
অ্যাপ্লিকেশনটি একটি নতুন ইনপুট পদ্ধতি ব্যবহার করে, যা বিকাশকারী একটি InputMethodService সংজ্ঞায়িত করে।

ডিভাইস পরিচালনা সফ্টওয়্যার বৈশিষ্ট্য

android.software.backup
অ্যাপ্লিকেশনটিতে একটি ব্যাকআপ পরিচালনা করতে এবং অপারেশন পুনরুদ্ধার করতে যুক্তি অন্তর্ভুক্ত রয়েছে।
android.software.device_admin
অ্যাপ্লিকেশনটি ডিভাইস প্রশাসকদের একটি ডিভাইস নীতি প্রয়োগ করতে ব্যবহার করে।
android.software.managed_users
অ্যাপ্লিকেশনটি মাধ্যমিক ব্যবহারকারীদের এবং পরিচালিত প্রোফাইলগুলিকে সমর্থন করে।
android.software.securely_removes_users
অ্যাপটি স্থায়ীভাবে ব্যবহারকারীদের এবং তাদের সম্পর্কিত ডেটা অপসারণ করতে পারে।
android.software.verified_boot
অ্যাপ্লিকেশনটিতে ডিভাইসের যাচাই করা বুট বৈশিষ্ট্য থেকে ফলাফলগুলি পরিচালনা করার জন্য যুক্তি অন্তর্ভুক্ত রয়েছে, যা পুনরায় আরম্ভ অপারেশনের সময় ডিভাইসের কনফিগারেশন পরিবর্তন করে কিনা তা সনাক্ত করে।

মিডিয়া সফ্টওয়্যার বৈশিষ্ট্য

android.software.midi
অ্যাপ্লিকেশনটি বাদ্যযন্ত্রের যন্ত্রগুলি বা আউটপুট সাউন্ডের সাথে সংযুক্ত করে যা বাদ্যযন্ত্রের ইনস্ট্রুমেন্ট ডিজিটাল ইন্টারফেস (এমআইডিআই) প্রোটোকল ব্যবহার করে।
android.software.print
অ্যাপ্লিকেশনটিতে ডিভাইসে প্রদর্শিত ডকুমেন্টগুলি মুদ্রণের জন্য কমান্ড অন্তর্ভুক্ত রয়েছে।
android.software.leanback
অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড টিভি ডিভাইসে চালানোর জন্য ডিজাইন করা হয়েছে।
android.software.live_tv
অ্যাপটি লাইভ টেলিভিশন প্রোগ্রামগুলি স্ট্রিম করে।

স্ক্রিন ইন্টারফেস সফ্টওয়্যার বৈশিষ্ট্য

android.software.app_widgets
অ্যাপ্লিকেশনটি অ্যাপ উইজেটগুলি ব্যবহার করে বা সরবরাহ করে এবং কেবলমাত্র এমন ডিভাইসগুলির জন্য তৈরি করা হয় যা কোনও হোম স্ক্রিন বা অনুরূপ অবস্থান অন্তর্ভুক্ত করে যেখানে ব্যবহারকারীরা অ্যাপ উইজেটগুলি এম্বেড করতে পারেন।
android.software.home_screen
অ্যাপটি ডিভাইসের হোম স্ক্রিনে প্রতিস্থাপন হিসাবে আচরণ করে।
android.software.live_wallpaper
অ্যাপটি অ্যানিমেশন অন্তর্ভুক্ত ওয়ালপেপারগুলি ব্যবহার করে বা সরবরাহ করে।

অনুমতিগুলি যা প্রয়োজনীয়তা বৈশিষ্ট্য বোঝায়

কিছু হার্ডওয়্যার এবং সফ্টওয়্যার বৈশিষ্ট্য ধ্রুবকগুলি সংশ্লিষ্ট এপিআইয়ের পরে অ্যাপ্লিকেশনগুলিতে উপলব্ধ করা হয়। এ কারণে, কিছু অ্যাপ্লিকেশনগুলি এপিআই ব্যবহার করতে পারে তারা ঘোষণা করতে পারে যে তাদের <uses-feature> সিস্টেমটি ব্যবহার করে এপিআই প্রয়োজন

এই অ্যাপ্লিকেশনগুলিকে অনিচ্ছাকৃতভাবে উপলব্ধ করা থেকে বিরত রাখতে, গুগল প্লে ধরে নিয়েছে যে নির্দিষ্ট হার্ডওয়্যার-সম্পর্কিত অনুমতিগুলি ইঙ্গিত দেয় যে অন্তর্নিহিত হার্ডওয়্যার বৈশিষ্ট্যগুলি ডিফল্টরূপে প্রয়োজনীয়। উদাহরণস্বরূপ, যে অ্যাপ্লিকেশনগুলি ব্লুটুথ ব্যবহার করে তাদের অবশ্যই একটি <uses-permission> > উপাদানটিতে BLUETOOTH অনুমতিের জন্য অনুরোধ করতে হবে।

লিগ্যাসি অ্যাপ্লিকেশনগুলির জন্য, গুগল প্লে ধরে নিয়েছে যে অনুমতি ঘোষণার অর্থ হ'ল অন্তর্নিহিত android.hardware.bluetooth বৈশিষ্ট্যটি অ্যাপ্লিকেশন দ্বারা প্রয়োজনীয় এবং সেই বৈশিষ্ট্যের উপর ভিত্তি করে ফিল্টারিং সেট আপ করে। সারণী 2 এর অনুমতিগুলি তালিকাভুক্ত করে যা <uses-feature> > উপাদানগুলিতে ঘোষিতদের সমতুল্য প্রয়োজনীয়তাগুলি বোঝায়।

<uses-feature> ঘোষণাপত্রগুলি, কোনও ঘোষিত android:required বৈশিষ্ট্যগুলি সহ সর্বদা সারণী 2-এ অনুমতিগুলির দ্বারা বর্ণিত বৈশিষ্ট্যগুলির চেয়ে সর্বদা অগ্রাধিকার গ্রহণ করুন এই কোনও অনুমতিগুলির জন্য, আপনি স্পষ্টভাবে একটিতে বৈশিষ্ট্যটি ঘোষণা করে ফিল্টারিং অক্ষম করতে পারেন ফিল্টারিং অক্ষম করতে পারেন <uses-feature> উপাদানটি false হিসাবে সেট করা required বৈশিষ্ট্য সহ উপাদান।

উদাহরণস্বরূপ, CAMERA অনুমতিের ভিত্তিতে ফিল্টারিং অক্ষম করতে, ম্যানিফেস্ট ফাইলে নিম্নলিখিত <uses-feature> ঘোষণাগুলি যুক্ত করুন:

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

সতর্কতা: যদি আপনার অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড 5.0 (এপিআই স্তর 21) বা উচ্চতর লক্ষ্য করে এবং ACCESS_COARSE_LOCATION বা ACCESS_FINE_LOCATION যথাক্রমে নেটওয়ার্ক বা একটি জিপিএস থেকে অবস্থান আপডেটগুলি গ্রহণের জন্য ব্যবহার করে, আপনাকে অবশ্যই স্পষ্টভাবে ঘোষণা করতে হবে যে আপনার অ্যাপ্লিকেশনটি android.hardware.location.network ব্যবহার করে তাও অবশ্যই ঘোষণা করতে হবে android.hardware.location.network বা android.hardware.location.gps হার্ডওয়্যার বৈশিষ্ট্য।

সারণী 2. ডিভাইসের অনুমতিগুলি যা ডিভাইস হার্ডওয়্যার ব্যবহারকে বোঝায়।

শ্রেণী অনুমতি নিহিত বৈশিষ্ট্য প্রয়োজনীয়তা
ব্লুটুথ BLUETOOTH android.hardware.bluetooth

বিশদের জন্য ব্লুটুথ বৈশিষ্ট্যের জন্য বিশেষ হ্যান্ডলিং দেখুন।

BLUETOOTH_ADMIN android.hardware.bluetooth
ক্যামেরা CAMERA android.hardware.camera
android.hardware.camera.autofocus
অবস্থান ACCESS_MOCK_LOCATION android.hardware.location
ACCESS_LOCATION_EXTRA_COMMANDS android.hardware.location
INSTALL_LOCATION_PROVIDER android.hardware.location
ACCESS_COARSE_LOCATION

android.hardware.location

android.hardware.location.network (কেবলমাত্র যখন লক্ষ্য এপিআই স্তর 20 বা তার চেয়ে কম হয়))

ACCESS_FINE_LOCATION

android.hardware.location

android.hardware.location.gps (কেবলমাত্র যখন লক্ষ্য এপিআই স্তর 20 বা তার চেয়ে কম হয়))

মাইক্রোফোন RECORD_AUDIO android.hardware.microphone
টেলিফোনি CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony
ওয়াই-ফাই ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi