يستخدم 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 هي |
النتيجة |
---|---|---|
<uses-sdk> |
4 أو أقل | لا يصف Google Play التطبيقات من أي أجهزة
استنادًا إلى الدعم الذي تم الإبلاغ عنه بشأن android.hardware.bluetooth
الجديدة. |
4 أو أقل | 5 أو أكثر | يصفي Google Play التطبيق من أي أجهزة لا تتوافق مع ميزة android.hardware.bluetooth (بما في ذلك
الإصدارات الأقدم). |
5 أو أكثر | 5 أو أكثر |
توضح الأمثلة التالية تأثيرات التصفية المختلفة بناءً على كيفية يعالج Google Play ميزة البلوتوث.
-
في المثال الأول، أحد التطبيقات المصممة للتشغيل على مستويات قديمة لواجهة برمجة التطبيقات
يُعلِن عن إذن استخدام البلوتوث ولكنه لا يفصح عن ميزة استخدام البلوتوث في
العنصر
- النتيجة: لا يصفي Google Play التطبيق من أي جهاز.
<uses-feature>
<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>
-
وأخيرًا، وفي الحالة التالية، يضيف التطبيق نفسه علامة
- النتيجة: يوقِف Google Play الفلترة استنادًا إلى البلوتوث إتاحة الميزات لجميع الأجهزة.
android:required="false"
<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
تحديد الميزات التي يتطلبها التطبيق.
لاستخدام الأداة، اتبع الخطوات التالية:
- أنشِئ تطبيقك وصدِّره كملف APK غير موقَّع.
إذا كنت تطوّر التطبيق في "استوديو Android"، يمكنك إنشاء تطبيقك باستخدام Gradle على النحو التالي:
- افتح المشروع واختَر تشغيل > عدِّل الإعدادات.
- حدد علامة الجمع بالقرب من أعلى يمين شاشة تشغيل/تصحيح الأخطاء الإعدادات.
- اختَر Gradle.
- أدخِل "ملف APK غير موقَّع". في الاسم.
- اختَر الوحدة من قسم مشروع Gradle.
- أدخِل "التجميع". في مهام Google.
- اختَر حسنًا لإكمال عملية الضبط الجديدة.
- تأكّد من اختيار إعدادات تشغيل حزمة APK غير الموقَّعة. في شريط الأدوات، ثم حدد تشغيل > شغِّل "حِزمة APK غير موقَّعة".
<ProjectName>/app/build/outputs/apk/
. - حدِّد موقع أداة
aapt2
إذا لم تكن موجودة في مسار PATH. إذا كنت تستخدم الإصدار 8 أو إصدارًا أحدث من حزمة تطوير البرامج (SDK)، يمكنك العثور علىaapt2
في<SDK>/build-tools/<tools version number>
الدليل.ملاحظة: يجب استخدام إصدار
aapt2
الذي يتم توفيره لأحدث مكوّن متاح لـ "أدوات الإنشاء" في حال حذف إذا لم يكن لديك أحدث مكوّن من أدوات إنشاء الإصدار، يمكنك تنزيله باستخدام مدير حزمة تطوير البرامج (SDK) لنظام التشغيل Android. - شغِّل
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 |
|
|
ACCESS_FINE_LOCATION |
|
|
الميكروفون | 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 |