<uses-feature>

يستخدم Google Play <uses-feature> العناصر المذكورة في بيان التطبيق لفلترة تطبيقك من الأجهزة لا تستوفي متطلبات ميزات الأجهزة والبرامج.

ومن خلال تحديد الميزات التي يتطلبها تطبيقك، تمكّن Google Play من عرض تطبيقك فقط للمستخدمين الذين الأجهزة لمتطلبات ميزات التطبيق، بدلاً من تقديمها لجميع المستخدمين.

للحصول على معلومات مهمة حول كيفية يستخدم Google Play الميزات كأساس للفلترة، راجع قسم Google Play والفلترة المستندة إلى الميزات.

بناء الجملة:
<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />
الواردة في:
<manifest>
description:

تعلن عن ميزة واحدة للأجهزة أو البرامج يستخدمها التطبيق.

الغرض من بيان <uses-feature> هو إعلام لأي كيان خارجي ضمن مجموعة الأجهزة والبرامج يعتمد عليه التطبيق. يوفّر العنصر السمة required التي تحديد ما إذا كان تطبيقك يتطلب أو لا يمكن أن يعمل دون الميزة المعلنة أو يفضل استخدامها ولكن يمكن أن تعمل بدونه.

ونظرًا لاختلاف دعم الميزات عبر أجهزة Android، يلعب عنصر <uses-feature> دورًا مهمًا في السماح يصف التطبيق الميزات المتغيرة للأجهزة التي يستخدمها.

مجموعة الميزات المتاحة التي يعبّر تطبيقك عنها تتوافق مع مجموعة الثوابت في الخصائص المتوفرة في PackageManager لنظام التشغيل Android. يتم سرد ثوابت الخصائص في قسم مرجع الميزات في هذا المستند.

عليك تحديد كل عنصر في <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> لا يتم تفعيله إلا الأجهزة التي تعمل من المستوى 4 أو أعلى من واجهة برمجة التطبيقات، عليك تضمين هذه العناصر في التطبيقات، حتى إذا كانت minSdkVersion 3 أو أقل. تتجاهل الأجهزة التي تعمل بإصدارات قديمة من النظام الأساسي العنصر.

ملاحظة: عند الإعلان عن ميزة، يُرجى تذكُّر ما يلي: يجب أيضًا طلب الأذونات حسبما تقتضي الحاجة. على سبيل المثال، تحتاج إلى طلب CAMERA إذن قبل أن يتمكّن التطبيق من الوصول إلى واجهة برمجة تطبيقات الكاميرا. يتيح لك طلب يمنح هذا الإذن التطبيق إمكانية الدخول إلى الأجهزة و البرامج. يساعد تعريف الميزات التي يستخدمها تطبيقك في ضمان توافق الجهاز.

:
android:name
تُحدِّد ميزة جهاز أو برنامج واحدة يستخدمها التطبيق كـ سلسلة واصف. يتم سرد قيم السمات الصالحة في ميزات الأجهزة والبرامج الجديدة. وتعد قيم السمات هذه حساسة لحالة الأحرف.
android:required
قيمة منطقية تشير إلى ما إذا كان التطبيق يتطلب الميزة المحددة في android:name.
  • عند تعريف android:required="true" لعنصر، يشير ذلك إلى التطبيق لا يعمل أو لا مصمَّمة لتعمل، في حال عدم توفّر الميزة المحدّدة في الخاص بك.
  • عند تعريف android:required="false" لعنصر، يشير ذلك إلى يستخدم التطبيق الميزة إن وجدت على الجهاز، ولكنه مصمم ليعمل بدون إذا لزم الأمر.

القيمة التلقائية لـ android:required هي "true"

android:glEsVersion
يتطلّب التطبيق إصدار OpenGL ES. كلما زاد عدد وحدات بت يمثل الرقم الرئيسي وتمثل وحدات البت الأقل 16 بت الرقم الثانوي. بالنسبة على سبيل المثال، لتحديد الإصدار 2.0 من OpenGL ES، يمكنك ضبط القيمة على "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 المتعددة، فقط تحديد أدنى إصدار عددي يتطلبه الإصدار ES. أُنشأها جون هنتر، الذي كان متخصصًا يمكنه التأكّد في وقت التشغيل من توفّر مستوى أعلى من OpenGL ES.

لمزيد من المعلومات عن استخدام OpenGL ES، بما في ذلك طريقة التحقُّق من OpenGL ES المتوافق في وقت التشغيل، يمكنك مراجعة OpenGL ES دليل واجهة برمجة التطبيقات

تم تقديمها في:
المستوى 4 من واجهة برمجة التطبيقات
راجِع أيضًا:

Google Play والفلترة المستندة إلى الميزات

يصفي Google Play التطبيقات المرئية للمستخدمين بحيث يمكن للمستخدمين رؤية وتنزيل هذه التطبيقات المتوافقة مع أجهزته. إحدى الطرق التي تُستخدم فيها تصفية التطبيقات هي حسب الميزة التوافق.

لتحديد توافق ميزة أحد التطبيقات مع وظيفة مستخدم معين الجهاز، يقارن Google Play ما يلي:

  • الميزات التي يتطلبها التطبيق، كما هو موضَّح في <uses-feature> في بيان التطبيق.
  • الميزات المتوفّرة على الجهاز في الأجهزة أو البرامج، وفقًا لما تم الإبلاغ عنه استخدام خصائص النظام للقراءة فقط

لمقارنة الميزات بدقة، يمكن استخدام مدير حزم Android يوفر مجموعة مشتركة من ثوابت الخصائص التي تستخدمها التطبيقات والأجهزة استخدامها للإعلان عن متطلبات الميزات ودعمها. ثوابت الخصائص المتوفّرة يتم إدراجها في القسم مرجع الميزات في هذا المستند وفي وثائق الصف PackageManager

عندما يشغِّل المستخدم Google Play، يستفسر التطبيق عن للاطّلاع على قائمة الميزات المتاحة على الجهاز من خلال getSystemAvailableFeatures() تشير رسالة الأشكال البيانية ينقل تطبيق "متجر Play" بعد ذلك قائمة الميزات إلى 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"] إذا كنت بدلاً من المستوى 5 أو أعلى لواجهة برمجة التطبيقات.

يتيح لك هذا تحديد ما إذا كان التطبيق يتطلب هذه الميزة ولا يمكن أن يعمل بشكل صحيح دون هو ("true") أو يستخدم الميزة إذا كانت متاحة، ولكنها مصمّمة للتشغيل بدونها ("false").

يتعامل Google Play مع الميزات المعلَن عنها صراحةً على النحو التالي:

  • في حال تم الإعلان صراحةً عن إحدى الميزات على أنّها مطلوبة، كما هو موضَّح في ما يلي: مثلاً، يضيف Google Play الميزة إلى قائمة الميزات المطلوبة للتطبيق. ثم تصفية التطبيق من المستخدمين على الأجهزة التي لا توفر هذه الميزة.
    <uses-feature android:name="android.hardware.camera.any" android:required="true" />
    
  • إذا تم الإعلان صراحةً عن إحدى الميزات على أنّها غير مطلوبة، كما هو موضّح في المثال التالي، Google لا يضيف التشغيل الميزة إلى قائمة الميزات المطلوبة. بالنسبة ولهذا السبب، لا يتم النظر إلى ميزة معلَن عنها صراحةً غير مطلوبة عندما تصفية التطبيق. حتى في حال عدم تقديم الجهاز البيانات ما زال Google Play يعتبر أن التطبيق متوافق مع الجهاز ويعرضها للمستخدم، ما لم يتم تطبيق قواعد فلترة أخرى.
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    
  • إذا تم الإعلان عن ميزة بشكل صريح، ولكن بدون android:required، يفترض Google Play أن الميزة مطلوبة وتهيئ التصفية عليها.

بشكل عام، إذا تم تصميم التطبيق ليعمل بالإصدار 1.6 من نظام التشغيل Android والإصدارات الأقدم، السمة android:required غير متوفّرة في وGoogle Play ويفترضون أن جميع يجب إدخال <uses-feature> بيان.

ملاحظة: من خلال الإعلان عن الميزة بشكل صريح بما في ذلك السمة android:required="false"، يمكنك إيقاف جميع عوامل التصفية على Google Play للميزة المحددة بشكل فعال.

الفلترة استنادًا إلى الميزات الضمنية

الميزة الضمنية هي الميزة التي يتطلبها التطبيق من أجل بشكلٍ سليم، ولكن لم يتم تعريفه في العنصر <uses-feature> في ملف البيان. بشكل كامل من الأفضل لكل تطبيق أن يعلن دائمًا عن جميع الميزات التي أو مطلوبة، وعدم وجود إعلان لميزة يتم استخدامها من قِبل يمكن اعتبارها خطأ.

ومع ذلك، كإجراء وقائي للمستخدمين فإن Google Play يبحث عن الميزات الضمنية في كل تطبيق إعداد عوامل التصفية لتلك الميزات، كما هو الحال مع الميزات المعلَن عنها.

قد يحتاج أحد التطبيقات إلى ميزة ولكنه لا يفصح عنها لأسباب مثل ما يلي:

  • تم تجميع التطبيق مقابل إصدار قديم من مكتبة Android (الإصدار 1.5 من نظام التشغيل Android أو الإصدارات الأقدم)، والذي لا يتوفّر فيه العنصر <uses-feature> المتوفرة.
  • يعتقد مطوِّر البرامج عن طريق الخطأ أنّ الميزة متوفّرة في جميع الأجهزة والإقرار غير ضروري.
  • يغفل المطوّر بيان الميزة عن طريق الخطأ.
  • يعلن المطوّر عن الميزة بشكل صريح، إلا أنّ البيان ليس كذلك صالحة. على سبيل المثال، حدث خطأ إملائي في <uses-feature>. اسم عنصر أو قيمة سلسلة غير معروفة السمة android:name تلغي بيان الميزة.

ولحساب هذه الحالات، يحاول Google Play اكتشاف متطلبات الميزات الضمنية للتطبيق من خلال فحص العناصر الأخرى تم تعريفه في ملف البيان، وتحديدًا <uses-permission>.

في حال طلب أحد التطبيقات الحصول على أذونات ذات صلة بالأجهزة، سيتعين على Google Play أن التطبيق يستخدم ميزات الأجهزة الأساسية هذه الميزات، حتى إذا لم تكن هناك بيانات <uses-feature> المقابلة. بالنسبة إلى هؤلاء يضيف Google Play ميزات الأجهزة الأساسية إلى البيانات الوصفية التي يخزنها التطبيق وإعداد عوامل التصفية لها.

على سبيل المثال، إذا طلب أحد التطبيقات إذن CAMERA، يفترض Google Play أن التطبيق يتطلب كاميرا خلفية (مواجهة للعالم) حتى إذا لم يحدّد التطبيق العنصر <uses-feature> في android.hardware.camera نتيجةً لذلك، يفلتر 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> أن تؤثر مباشرةً في كيفية يصفي Play تطبيقك. تشير رسالة الأشكال البيانية يسرد قسم الأذونات التي تشير إلى متطلبات الميزات ما يلي: مجموعة كاملة من الأذونات التي تشير ضمنًا إلى متطلبات الميزة، وبالتالي تؤدي إلى تشغيل والتصفية.

معالجة خاصة لميزة البلوتوث

ويطبِّق Google Play قواعد مختلفة قليلاً عن تلك الموضّحة في المثال السابق عند تحديد التصفية باستخدام البلوتوث.

إذا أعلن أحد التطبيقات عن إذن للبلوتوث في العنصر <uses-permission> ولكن لم يتم الإعلان بشكل صريح ميزة البلوتوث في عنصر <uses-feature>، Google يتحقق Play من إصدارات نظام Android الأساسي الذي تم تثبيت التطبيق عليه تم تصميمه للتشغيل، كما هو محدد في العنصر <uses-sdk>.

كما هو موضح في الجدول التالي، يتيح Google Play الفلترة حسب ميزة البلوتوث فقط إذا أعلن التطبيق عن المستوى الأدنى أو المستهدف الإصدار Android 2.0 (المستوى 5 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. ومع ذلك، يُرجى ملاحظة أنّ Google يطبِّق Play القواعد العادية للفلترة عندما يكون التطبيق واضحًا. إلى ميزة البلوتوث في عنصر <uses-feature>.

الجدول 1. آلية Google Play في تحديد متطلبات ميزة البلوتوث في أحد التطبيقات التي تطلب تقنية البلوتوث إذن، ولكنه لا يفصح عن ميزة البلوتوث في العنصر <uses-feature>.

إذا كان minSdkVersion ... وtargetSdkVersion هي النتيجة
<=4، أو لم يتم تعريف القيمة <uses-sdk> 4 أو أقل لا يصف Google Play التطبيقات من أي أجهزة استنادًا إلى الدعم الذي تم الإبلاغ عنه بشأن android.hardware.bluetooth الجديدة.
4 أو أقل 5 أو أكثر يصفي Google Play التطبيق من أي أجهزة لا تتوافق مع ميزة android.hardware.bluetooth (بما في ذلك الإصدارات الأقدم).
5 أو أكثر 5 أو أكثر

توضح الأمثلة التالية تأثيرات التصفية المختلفة بناءً على كيفية يعالج Google Play ميزة البلوتوث.

في المثال الأول، أحد التطبيقات المصممة للتشغيل على مستويات قديمة لواجهة برمجة التطبيقات يُعلِن عن إذن استخدام البلوتوث ولكنه لا يفصح عن ميزة استخدام البلوتوث في العنصر <uses-feature>
النتيجة: لا يصفي Google Play التطبيق من أي جهاز.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" />
    ...
</manifest>
وفي المثال الثاني، يعلن التطبيق نفسه أيضًا عن هدف المستوى "5" من واجهة برمجة التطبيقات
النتيجة: يفترض Google Play الآن أن الميزة مطلوبة تصفية التطبيق من جميع الأجهزة التي لا تقدم تقريرًا عن دعم البلوتوث، بما في ذلك الأجهزة التي تعمل بإصدارات قديمة من النظام الأساسي
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
وهنا، يعلن التطبيق نفسه الآن على وجه التحديد عن ميزة Bluetooth.
النتيجة: مماثلة للمثال السابق: يتم تطبيق الفلترة.
<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>

اختبار الميزات التي يتطلبها تطبيقك

يمكنك استخدام أداة aapt2 المضمّنة في حزمة تطوير البرامج (SDK) لنظام التشغيل Android من أجل تحديد طريقة فلترة Google Play لتطبيقك استنادًا إلى التطبيق المُعلَن عنه الميزات والأذونات. لإجراء ذلك، شغِّل aapt2 باستخدام الأمر dump badging. يؤدي ذلك إلى تحليل aapt2 بيان التطبيق وأن تطبّق القواعد نفسها التي يستخدمها Google Play تحديد الميزات التي يتطلبها التطبيق.

لاستخدام الأداة، اتبع الخطوات التالية:

  1. أنشِئ تطبيقك وصدِّره كملف APK غير موقَّع. إذا كنت تطوّر التطبيق في "استوديو Android"، يمكنك إنشاء تطبيقك باستخدام Gradle على النحو التالي:
    1. افتح المشروع واختَر تشغيل > عدِّل الإعدادات.
    2. حدد علامة الجمع بالقرب من أعلى يمين شاشة تشغيل/تصحيح الأخطاء الإعدادات.
    3. اختَر Gradle.
    4. أدخِل "ملف APK غير موقَّع". في الاسم.
    5. اختَر الوحدة من قسم مشروع Gradle.
    6. أدخِل "التجميع". في مهام Google.
    7. اختَر حسنًا لإكمال عملية الضبط الجديدة.
    8. تأكّد من اختيار إعدادات تشغيل حزمة APK غير الموقَّعة. في شريط الأدوات، ثم حدد تشغيل > شغِّل "حِزمة APK غير موقَّعة".
    يمكنك العثور على حِزمة APK التي لم يتم توقيعها في دليل <ProjectName>/app/build/outputs/apk/.
  2. حدِّد موقع أداة aapt2 إذا لم تكن موجودة في مسار PATH. إذا كنت تستخدم الإصدار 8 أو إصدارًا أحدث من حزمة تطوير البرامج (SDK)، يمكنك العثور على aapt2 في <SDK>/build-tools/<tools version number> الدليل.

    ملاحظة: يجب استخدام إصدار aapt2 الذي يتم توفيره لأحدث مكوّن متاح لـ "أدوات الإنشاء" في حال حذف إذا لم يكن لديك أحدث مكوّن من أدوات إنشاء الإصدار، يمكنك تنزيله باستخدام مدير حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

  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.hardware"، في السمة android:name. في كل مرة تعلن فيها عن إحدى ميزات الأجهزة، استخدِم ميزة العنصر <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 يشير الإذن إلى أنّ استخدام الكاميرا الخلفية هو ميزة مطلوبة. للمساعدة في ضمان الفلترة بشكل صحيح على Google Play عندما يتضمن بيان التطبيق إذن CAMERA، حدِّد بوضوح ما يستخدمه تطبيقك. ميزة 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.hardware.camera باستخدام android.required="false"، الأجهزة التي لا تحتوي على غطاء خلفي الكاميرا (مثل أجهزة Chromebook) عن طريق Google Play. إذا كان تطبيقك يتيح الأجهزة المزوّدة بكاميرات أمامية فقط، يُرجى التعريف عن android.hardware.camera باستخدام android.required="false" لمنع الفلترة غير الضرورية.

android.hardware.camera.external

يتواصل التطبيق مع كاميرا خارجية يتصل بها المستخدم الخاص بك. لا تضمن هذه الميزة توفُّر كاميرا خارجية. لكي يستخدمه التطبيق.

يشير إذن CAMERA إلى أنّ تطبيقك يستخدم أيضًا. android.hardware.camera يجب استخدام كاميرا خلفية. ما لم يتم الإعلان عن android.hardware.camera باستخدام android:required="false"

android.hardware.camera.autofocus

يستخدم التطبيق ميزة "التركيز التلقائي" المتوافقة مع كاميرا الجهاز.

ملاحظة: CAMERA يشير الإذن إلى أنّ التركيز التلقائي هو ميزة مطلوبة. للمساعدة في ضمان الفلترة على Google Play عندما يتضمن بيان التطبيق CAMERA، حدِّد صراحةً أنّ تطبيقك يستخدم والتركيز التلقائي وتحديد ما إذا كانت مطلوبة أم لا، مثل:
<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 و android.colorCorrection.mode من إجمالي TRANSFORM_MATRIX

android.hardware.camera.capability.manual_sensor

يستخدم التطبيق ميزة "MANUAL_SENSOR" المتوافقة مع كاميرا الجهاز.

تشير هذه الميزة إلى إتاحة قفل الشاشة تلقائيًا (android.control.aeLock)، التي تتيح إمكانية التعرّض للضوء في الكاميرا الحساسية والوقت ليظلا ثابتين في قيم معينة.

android.hardware.camera.capability.raw

يستخدم التطبيق ميزة "RAW" المتوافقة مع التطبيق. والكاميرا.

تشير هذه الميزة إلى أن الجهاز يمكنه حفظ ملفات DNG (الأولية). تشير رسالة الأشكال البيانية كاميرا الجهاز توفر البيانات الوصفية المتعلقة بـ DNG واللازمة التطبيق بمعالجة الصور الأولية مباشرةً.

android.hardware.camera.level.full
يستخدم التطبيق مستوى FULL من دعم التقاط الصور المقدَّم. من كاميرا واحدة على الأقل في الجهاز يشمل دعم FULL إمكانات الالتقاط الصور المتسلسلة والتحكّم في كل إطار والمعالجة اليدوية بعد المعالجة والتحكم المستمر. عرض INFO_SUPPORTED_HARDWARE_LEVEL_FULL

ميزات الأجهزة لواجهة مستخدم الجهاز

android.hardware.type.automotive

تم تصميم التطبيق لعرض واجهة المستخدم على مجموعة من الشاشات داخل إحدى المركبات. يتفاعل المستخدم مع التطبيق باستخدام الأزرار المتينة واللمس والتدوير. ووحدات تحكم وواجهات تشبه الماوس. تعرض شاشات المركبة عادةً في وحدة التحكم المركزية أو مجموعة العدادات في أي مركبة. هذه عادةً ما يكون للشاشات حجم ودقة محدودين.

ملاحظة: نظرًا لأن المستخدم أثناء استخدام هذا النوع من واجهة مستخدم التطبيقات، يجب على التطبيق تصغير التشتيت.

android.hardware.type.television

(متوقف، استخدم android.software.leanback بدلاً من ذلك).

تم تصميم التطبيق لعرض واجهة المستخدم على جهاز التلفزيون. تحدد هذه الميزة "تلفزيون" كتجربة تلفزيون نموذجية في غرفة المعيشة: يعرض التطبيق على الشاشة الكبيرة، والمستخدم جالسًا بعيدًا، والشكل السائد من خلال استخدام لوحة التحكّم بدلًا من الماوس، أو مؤشر أو جهاز يعمل باللمس.

android.hardware.type.watch
تم تصميم التطبيق لعرض واجهة المستخدم على الساعة. يتم ارتداء ساعة على الجسم مثل المعصم. يكون المستخدم قريبًا جدًا من الجهاز أثناء للتفاعل معه.
android.hardware.type.pc

تم تصميم التطبيق لعرض واجهة المستخدم على أجهزة Chromebook. تعمل هذه الميزة على إيقاف محاكاة الإدخال للماوس ولوحة اللمس، لأنّ أجهزة Chromebook تستخدم الماوس جهاز لوحة اللمس. عرض الماوس الإدخال.

ملاحظة: يجب ضبط required="false" لذلك. element; سيجعل "متجر Google Play" تطبيقك غير متوفّر للأجهزة. بخلاف أجهزة Chromebook.

ميزات أجهزة بصمة الإصبع

android.hardware.fingerprint
يقرأ التطبيق بصمات الأصابع باستخدام أجهزة المقاييس الحيوية الخاصة بالجهاز.

ميزات أجهزة لوحة الألعاب

android.hardware.gamepad
يلتقط التطبيق إدخالات وحدة التحكم في الألعاب، سواء من الجهاز نفسه أو من جهاز تحكم في الألعاب متصل.

ميزات أجهزة الأشعة تحت الحمراء

android.hardware.consumerir
يستخدم التطبيق إمكانيات الأشعة تحت الحمراء (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 Extension Pack المثبَّت على الجهاز.

ميزات أجهزة الاستشعار

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
يستخدم التطبيق أجهزة الاستشعار العالية الدقة (Hi-Fi) في الجهاز. على سبيل المثال، الألعاب على الأجهزة الجوّالة الحركات العالية الدقة للمستخدم.
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، فإن هذا البيان يعني أن تطبيقك يتطلب هذا الاتجاه.

على سبيل المثال، إذا أعلنت android:screenOrientation باستخدام ""landscape"" أو ""reverseLandscape"" أو ""sensorLandscape""، يصبح تطبيقك لا تتوفر إلا على الأجهزة التي تتيح استخدام الاتجاه الأفقي.

وفقًا لأفضل الممارسات، يجب الإفصاح عن طلبك. الاتجاه باستخدام عنصر <uses-feature>. في حال الإقرار اتجاه نشاطك باستخدام "android:screenOrientation" ولكن ليس تتطلبها بالفعل، يمكنك لإيقاف الشرط من خلال تعريف الاتجاه باستخدام عنصر <uses-feature> وتضمين android:required="false".

للتوافق مع الأنظمة القديمة، أي جهاز يعمل بالإصدار 3.1 من نظام التشغيل Android (المستوى 12 من واجهة برمجة التطبيقات) أو أقل يتوافق مع كل من الاتجاهين الأفقي والعمودي.

ميزات أجهزة الاتصال الهاتفي

android.hardware.telephony
ويستخدم التطبيق ميزات الاتصال الهاتفي للجهاز، مثل الراديو الهاتفي مع وخدمات توصيل البيانات.
android.hardware.telephony.cdma

يستخدم التطبيق الراديو الهاتفي ذي الوصول المتعدد الخاص بتقسيم الرمز (CDMA) .

وباستخدام هذه الميزة، يعني أحد التطبيقات أنه يستخدم أيضًا ميزة واحدة (android.hardware.telephony)، ما لم يكن هذا أحد الوالدَين تم الإعلان عن هذه الميزة باستخدام android:required="false".

android.hardware.telephony.gsm

يستخدم التطبيق نظام الاتصال الهاتفي العالمي لاتصالات الجوال (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.

تتطلّب جميع التطبيقات هذه الميزة تلقائيًا، وبالتالي لا يتم تعديلها. متاحة للأجهزة التي لا توفِّر سوى "لمسة زائفة" تمت محاكاتها من واجهة pyplot. يمكنك إتاحة تطبيقك على الأجهزة. التي توفر واجهة تعمل باللمس وهمية، أو حتى على الأجهزة التي توفر وحدة تحكم لوحة التحكم، من خلال الإعلان الصريح أن الشاشة التي تعمل باللمس غير مطلوب استخدام 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".

ميزات أجهزة USB

android.hardware.usb.accessory
يعمل التطبيق كجهاز USB ويتصل بمضيفات USB.
android.hardware.usb.host
يستخدم التطبيق ملحقات USB المتصلة بالجهاز. تشير رسالة الأشكال البيانية جهازك كمضيف USB.

ميزات أجهزة Vulkan

android.hardware.vulkan.compute
يستخدم التطبيق ميزات Vulkan الحوسبة. تشير هذه الميزة إلى أن التطبيق يتطلب استخدام جهاز مسرَّع على الجهاز تنفيذ Vulkan. يشير إصدار الميزة إلى مستوى الحوسبة التي يتطلبها التطبيق غير متطلبات Vulkan 1.0. على سبيل المثال، إذا كان تطبيقك يتطلب دعم مستوى الحوسبة Vulkan 0، يُرجى الإفصاح عن الميزة التالية:
<uses-feature
    android:name="android.hardware.vulkan.compute"
    android:version="0"
    android:required="true" />
لمزيد من التفاصيل عن إصدار الميزة، يُرجى الاطّلاع على FEATURE_VULKAN_HARDWARE_COMPUTE.
android.hardware.vulkan.level
يستخدم التطبيق ميزات مستوى Vulkan. تشير هذه الميزة إلى أن التطبيق يتطلب تطبيق Vulkan مسرَّع على الجهاز. يشير إصدار الميزة إلى مستوى الأجهزة التي يتطلبها التطبيق. على سبيل المثال، إذا كان تطبيقك يتطلب المستوى 0 من أجهزة Vulkan قدّم الدعم، اذكر الميزة التالية:
<uses-feature
    android:name="android.hardware.vulkan.level"
    android:version="0"
    android:required="true" />
لمزيد من المعلومات عن إصدار الميزة، يُرجى الاطّلاع على FEATURE_VULKAN_HARDWARE_LEVEL.
android.hardware.vulkan.version
يستخدم التطبيق Vulkan. تشير هذه الميزة إلى أن التطبيق يتطلب استخدام جهاز مسرَّع على الجهاز تنفيذ Vulkan. يشير إصدار الميزة إلى الحد الأدنى من إصدار التوافق مع Vulkan API التي يتطلبها التطبيق. على سبيل المثال، إذا كان تطبيقك يتطلب دعم Vulkan 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 (Wi-Fi) على الجهاز.
android.hardware.wifi.direct
ويستخدم التطبيق ميزات شبكات Wi-Fi Direct على الجهاز.

ميزات البرامج

يعرض هذا القسم ميزات البرامج التي تدعمها أحدث الإصدارات إصدار النظام الأساسي. للإشارة إلى أنّ تطبيقك يستخدم برنامجًا أو يتطلّبه الميزة، قم بتعريف القيمة المتجاوبة، بدءًا من "android.software"، في السمة android:name. في كل مرة تعلن فيها عن ميزة برمجية، استخدم ميزة العنصر <uses-feature>.

ميزات برامج الاتصال

android.software.sip
يستخدم التطبيق خدمات بروتوكول بدء الجلسة (SIP). باستخدام SIP، أن يدعم التطبيق عمليات الاتصال الهاتفي على الإنترنت، مثل مؤتمرات الفيديو والرسائل الفورية.
android.software.sip.voip

يستخدم التطبيق خدمات بروتوكول الصوت على الإنترنت (VoIP) المستندة إلى 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
يتصل التطبيق بالآلات الموسيقية أو يُصدر الصوت باستخدام بروتوكول الواجهة الرقمية للأداة (MIDI)
android.software.print
يتضمن التطبيق أوامر لطباعة المستندات المعروضة على الجهاز.
android.software.leanback
تم تصميم التطبيق للتشغيل على أجهزة Android TV.
android.software.live_tv
يبث التطبيق برامج تلفزيونية مباشرة.

ميزات برامج واجهة الشاشة

android.software.app_widgets
يستخدم التطبيق أدوات التطبيق أو يوفّرها وهو مخصّص فقط الأجهزة التي تتضمن شاشة رئيسية أو موقعًا جغرافيًا مشابهًا يمكن للمستخدمين من خلاله تضمين أدوات التطبيقات المصغّرة.
android.software.home_screen
يعمل التطبيق كبديل للشاشة الرئيسية للجهاز.
android.software.live_wallpaper
يستخدم التطبيق أو يوفّر خلفيات تتضمّن صورًا متحرّكة.

الأذونات التي تشير ضمنًا إلى متطلبات الميزات

يتم توفير بعض ثوابت ميزات الأجهزة والبرامج التطبيقات بعد واجهة برمجة التطبيقات المقابلة. ولهذا السبب، قد تستخدم بعض التطبيقات واجهة برمجة التطبيقات قبل. يمكنه الإفصاح عن أنّها تطلب واجهة برمجة التطبيقات باستخدام نظام <uses-feature>

لمنع إتاحة هذه التطبيقات عن غير قصد، يستخدم Google Play أن بعض الأذونات المتعلقة بالأجهزة تشير إلى أن تكون ميزات الأجهزة الأساسية مطلوبة تلقائيًا. على سبيل المثال: يجب أن تطلب التطبيقات التي تستخدم البلوتوث BLUETOOTH. إذن في عنصر <uses-permission>.

للإصدار القديم تطبيقات، يفترض Google Play أن بيان الإذن يعني أن يجب إدخال ميزة android.hardware.bluetooth الأساسية من قِبل المستخدم وإعداد التصفية اعتمادًا على هذه الميزة. قوائم الجدول 2 الأذونات التي تشير ضمنًا إلى متطلبات ميزات تعادل تلك المذكورة في <uses-feature>.

<uses-feature> بيان، بما في ذلك أي سمة android:required المعلَن عنها، تكون الأولوية دائمًا على والميزات التي تتضمنها الأذونات في الجدول 2. بالنسبة إلى أي من هذه الأذونات، يمكنك تعطيل التصفية بناءً على الميزة الضمنية من خلال إعلان الميزة في عنصر <uses-feature> مع ضبط السمة required على false.

على سبيل المثال، بهدف إيقاف الفلترة استنادًا إلى الإذن 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 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) أو أعلى وتستخدم ACCESS_COARSE_LOCATION أو إذن ACCESS_FINE_LOCATION للوصول إلى الموقع الجغرافي من الشبكة أو من نظام تحديد المواقع العالمي (GPS)، على التوالي، يجب عليك أيضًا الإفصاح عن استخدام تطبيقك لـ 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
Wi-Fi ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi