إستخدام الخواص

الإعلانات

إستخدام الخواص <uses-feature>

 

إستخدام الخواص <uses-feature>

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

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

للحصول على معلومات مهمة حول كيفية إستخدام قوقل بلي للخواص كأساس للتصفيه، يرجى قراءة قوقل بلي و التصفية بناءً على الخصائص، أدناه.

 

بناء الجمله:

وارد في:
الإيضاح

الوصف:

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

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

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

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

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

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

مثال، تطبيق يتطلب خواص كلٍ من البلوتوث و الكاميرا في الجهاز يقوم بالإعلان عن هذين العنصرين:

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

 

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

 

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

مع ذلك، قد تقوم خدمات أخرى مثل قوقل بلي أو التطبيقات، بالتحقق من إعلان تطبيقك لعناصر <uses-feature> كجزء من التفاعل أو التعامل مع تطبيقك.

لهذا السبب، من المهم جداً أن تقوم بالإعلان عن كافة الخواص (من القائمة أدناه) التي يستخدمها تطبيقك.

بالنسبة لبعض الخواص، قد توجد سمة معينه تسمح لك بتحديد إصدار الخاصية، مثل إصدار Open GL المستخدم (معلن بواسطة glEsVersion).

الخواص الأخرى التي إما تكون موجودة أو غير موجودة في الجهاز، مثل الكاميرا، يتم الإعلان عنها بإستخدام سمة الاسم.

على الرغم من أن عنصر <uses-feature> يتم تنشيطه فقط في الأجهزة التي تعمل على المستوى API 4 أو أحدث، يستحسن تضمين هذه العناصر لكافة التطبيقات، حتى لو كانت نسخة minSdkVersion هي “3” أو أقل.

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

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

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

السمات:

android:name

تحدد خاصية واحده يستخدمها التطبيق هاردوير أو سوفتوير، كسلسلة وصفية. قيم السمات الصالحة مدرجة في أقسام خواص الهاردوير و السوفتوير.

قيم هذه السمه حساسة لحالة الأحرف.

android:required

قيمة منطقية تشير إلى ما إذا كان التطبيق يتطلب الخاصية المحددة في android:name.

  • عندما تقوم بالإعلان عن هذه السمة بالقيمة “صحيح” لخاصية ما، فإنك بذلك تحدد أن التطبيق لن يعمل، أو غير مصمم للعمل، عند غياب خاصية معينة من الجهاز.

 

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

 

تكون القيمة الإفتراضية لهذه السمة “صحيح” إذا لم تقم بالإعلان عنها.

android:glEsVersion

إصدار OpenGL ES مطلوب من قبل التطبيق. تمثل الـ16 بت الأعلى العدد الرئيسي وتمثل الـ16 بت الأدنى العدد الثانوي.

مثال، لتحديد الإصدار 2.0 لـOpenGL ES، يمكنك تعيين القيمة كـ”0x00020000″، أو لتحديد الإصدار 3.2 لـOpenGL ES، يمكنك تعيين القيمة كـ”0x00030002″.

أي تطبيق يجب أن يحدد على الأقل سمة android:glEsVersion واحده في ملف الإيضاح الخاص به.

إذا تم تحديد أكثر من سمه، سيتم إستخدام android:glEsVersion ذات الرقم الأعلى ويتم تجاهل أية قيم أخرى.

إذا لم يحدد التطبيق سمة android:glEsVersion، فسيفترض أن التطبيق يتطلب الإصدار 1.0 من OpenGL ES فقط، والذي هو مدعوم من جميع أجهزة الأندرويد.

يمكن أن يفترض التطبيق أنه إذا كان النظام يدعم إصدار محدد من OpenGL ES، فإنه سيدعم أيضاً جميع إصدارات OpenGL ES الأقدم.

لذلك، إذا كان تطبيق يدعم كل من الإصدار 1.0 و الإصدار 2.0 لـOpenGL ES فيجب تحديد أنه يتطلب الإصدار 2.0.

التطبيق الذي يمكنه العمل مع أي من إصدارات OpenGL ES المتعددة يجب تحديد الإصدار الأقل عدداً، كمتطلب له. (يمكنه التحقق من توفر إصدار أحدث أثناء التشغيل).

لمزيد من المعلومات حول إستخدام OpenGL ES، بما في ذلك كيفية التحقق من الإصدار المدعوم أثناء التشغيل، راجع دليل واجهة برمجة تطبيقات OpenGL ES.

مقدم في:
API 4.

راجع أيضاً:

إدارة الحزمة.
معلومات الخصائص.
معلومات التكوين.
إستخدام الأذونات.
التصفية على قوقل بلي.

 

 

قوقل بلي والتصفية بناءً على الخصائص


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

إحدى طرق تصفية التطبيقات هي عن طريق توافق الخصائص. لتحديد توافق خاصية التطبيق مع جهاز معين، يقوم قوقل بلي بمقارنة:

  • الخصائص التي يطلبها التطبيق – خصائص التطبيق المعلنة في عناصر <uses-feature> في ملف إيضاحه.

مع…

  • الخصائص المتوفرة على الجهاز، سواء كانت هاردوير أو سوفتوير – يعلن الجهاز عن الخصائص التي يدعمها كخصائص نظام قابلة للقراءة فقط.

 

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

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

عندما يقوم المستخدم بتشغيل قوقل بلي، يقوم التطبيق بالإستعلام عن مدير الحزمة لقائمة الخصائص المتوفرة على الجهاز من خلال إستدعاء ()getSystemAvailableFeatures.

بعد ذلك يقوم تطبيق السوق بتمرير قائمة الخصائص إلى قوقل بلي عند تأسيس الجلسة للمستخدم.

في كل مرة تقوم فيها بتحميل تطبيق إلى وحدة تحكم قوقل بلي، يفحص قوقل بلي ملف إيضاح التطبيق.

يبحث عن عناصر <uses-feature> ويقيمها في مجموعة مع عناصر أخرى. في بعض الحالات، مثل عناصر <uses-sdk> و <uses-permission>.

بعد إنشاء مجموعة خصائص مطلوبة للتطبيق، يقوم بتخزين تلك القائمة داخلياً كبيانات وصفيه مرتبطة مع ملف apk للتطبيق و إصدار التطبيق.

 

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

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

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

لأن الخصائص التي تعلن عنها في عناصر <uses-feature> تؤثر مباشرة على كيفية قيام قوقل بلي بتصفية تطبيقك.

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

 

 

 

 

التصفية استناداً على الخصائص المعلنة صراحة


الخاصية المعلنه بشكلٍ صريح هي خاصية يقوم تطبيقك بالإعلان عنها في عنصر <uses-feature>.

إعلان الخاصية يمكن أن يحتوي على سمة android:required التي تأخذ القيم “صحيح|خطأ” (إذا كنت تعمل على المستوى API 5 أو أعلى).

والذي يسمح لك بتحديد ما إذا كان التطبيق يتطلب الخاصية بلا شك و لا يمكنه العمل بشكلٍ صحيح بدونها “صحيح”، أو ما إذا كان التطبيق يفضل إستخدام الخاصية إن كانت متاحة، ولكنه مصمم للعمل بدونها “خطأ”.

 

يتعامل قوقل بلي مع الخصائص المعلنه بشكلٍ صريح بهذه الطريقه:

 

– إذا تم الإعلان بوضوح بأن الخاصية مطلوبه، يقوم قوقل بلي بإضافة الخاصية إلى قائمة الخصائص المطلوبة للتطبيق.

ثم يقوم بتصفية التطبيق بعدم إظهاره على أجهزة المستخدمين الذين لا تتوفر لديهم هذه الخاصية. مثال:

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

 

– إذا تم الإعلان بوضوح بأن الخاصية غير مطلوبه، فلن يقوم قوقل بلي بإضافتها إلى قائمة الخصائص المطلوبة.

ولهذا، فإن أي خاصية أعلن بوضوح بأنها غير مطلوبه لن تؤخذ بالإعتبار عند تصفية التطبيق.

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

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

 

– إذا تم الإعلان بوضوح عن خاصية، ولكن دون وجود للسمة android:required، فإن قوقل بلي سيفترض أن الخاصية مطلوبه وسيقوم بالتصفية بناءً عليها.

 

بشكلٍ عام، إذا تم تصميم التطبيق للعمل على أندرويد 1.6 و الإصدارات الأقدم، فإن السمة android:required لا تكون متوفرة في واجهة برمجة التطبيقات وسيفترض قوقل بلي بأن كل وأي إعلانات <uses-feature> مطلوبة.

 

ملاحظة: عند الإعلان عن خاصية بشكل صريح و تضمين السمة “android:required=”false، يمكنك تعطيل جميع تصفيات قوقل بلي المستنده على تلك الخاصية المحددة.

 

 

 

 

التصفية بناءً على الخصائص الضمنية


الخاصية الضمنية هي خاصية يتطلبها التطبيق لكي يعمل بشكلٍ صحيح، ولكن لا يتم الإعلان عنها في عنصر <uses-feature> في ملف الإيضاح.

بمعنى أدق، يجب على كل تطبيق أن يعلن دائماً عن الخصائص المستخدمه أو المطلوبه، لذا فإن غياب الإعلان عن خاصية يستخدمها التطبيق يجب أن يعتبر كخطأ ” error“.

مع ذلك، كوسيلة حماية للمستخدمين والمطورين، يقوم قوقل بلي بالبحث عن الخصائص الضمنيه في كل تطبيق.

ويقوم بإعداد مرشحات لتلك الخصائص، تماماً كما يفعل مع الخصائص المعلنة صراحةً. قد يتطلب تطبيق خاصية ما ولكن لا يعلن عنها لسببٍ ما:

 

– تم بناء التطبيق على إصدار قديم من مكتبة الأندرويد (الإصدار 1.5 أو أقدم) وكان العنصر <uses-feature> غير متوفر.

– اخطأ المطور في إفتراض أن الخاصية ستكون موجودة على جميع الأجهزة و أن الإعلان عنها غير ضروري.

– قام المطور بحذف الإعلان عن الخاصية عن غير قصد.

– قام المطور بالإعلان عن الخاصية بشكلٍ صريح، ولكن الإعلان لم يكن صالحاً.

مثال، خطأ إملائي في اسم العنصر <uses-feature> أو قيمة سلسلة غير معروفة لسمة الاسم android:name تؤدي إلى إبطال إعلان الخاصية.

 

و لمراعاة إمكانية حدوث أحد الحالات الواردة أعلاه، يسعى قوقل بلي لإكتشاف متطلبات الخصائص المضمنة للتطبيق.

 

عن طريق فحص العناصر الأخرى المعلنه في ملف الإيضاح، بالأخص، عناصر <uses-permission>.

إذا قام أحد التطبيقات بطلب أذونات متعلقة بالهاردوير، فإن قوقل بلي يفترض أن التطبيق يستخدم خصائص الهاردوير الأساسية وبالتالي تصبح هذه الخصائص مطلوبة.

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

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

 

مثال، إذا تطلب تطبيق ما أذونات للكاميرا ولكنه لم يعلن عن العنصر <uses-feature> لـ

android.hardware.camera, فسيعتبر قوقل بلي بأن التطبيق يتطلب كاميرا وبالتالي لن يظهره للمستخدمين الذين لا تتوفر كاميرا على أجهزتهم.

 

إذا لم تكن ترغب في قيام قوقل بلي بالتصفية بناءً على خاصية ضمنيه معينه، فيمكنك تعطيل هذا السلوك.

للقيام بذلك، قم بالإعلان عن خاصية بشكلٍ صريح في عنصر <uses-feature> وقم بتضمين السمة "android:required="false.

مثال، لتعطيل التصفية الناتجة عن أذونات الكاميرا، يمكنك الإعلان عن الخاصية كما هو موضح أدناه.

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

 

 

من المهم أن تفهم أن الأذونات التي تقوم بطلبها في عنصر <uses-permission> يمكنها أن تؤثر بشكلٍ مباشر على كيفية قيام قوقل بلي بتصفية تطبيقك.

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

 

 

 

 

 

معاملة خاصة لخصائص البلوتوث


 

يطبق قوقل بلي قواعد مختلفة قليلاً عما هو موضح أعلاه، عند تطبيق التصفية المرتبطة بالبلوتوث.

إذا قام تطبيق بالإعلان عن أذن بلوتوث في عنصر <uses-permission>، ولكنه لا يعلن صراحة عن خاصية البلوتوث في عنصر <uses-feature>. 

يقوم قوقل بلي بالتحقق من إصدار (إصدارات) الأندرويد التي صمم التطبيق للعمل عليها، كما هو محدد في العنصر <uses-sdk>.

كما هو موضح في الجدول أدناه، يقوم قوقل بلي بتمكين التصفية لخاصية البلوتوث فقط إذا كان التطبيق يعلن عن أدنى مستوى أو المستوى المستهدف من نظام الأندرويد مثل أندرويد 2.0 (API 5) أو أعلى.

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

جدول1: كيفية قيام قوقل بلي بتحديد خاصية البلوتوث المطلوبة للتطبيق والتي تتطلب أذونات للبلوتوث لكنها لا تعلن عن خاصية البلوتوث في عنصر <uses-feature>.

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

 

 

توضح الأمثلة أدناه تأثيرات التصفية المختلفة، بناءً على كيفية تعامل قوقل بلي مع خصائص البلوتوث.

 

في المثال الأول، تطبيق مصمم للعمل على مستويات واجهة برمجة التطبيقات الأقدم يقوم بالإعلان عن أذونات

بلوتوث، لكنه لا يعلن عن خاصية البلوتوث في عنصر <uses-feature>.

 

النتيجه: لن يقوم قوقل بلي بتصفية التطبيق من أي جهاز “أي سيظهر للكل”.

<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" />
    ...
</manifest>

 

 

في المثال الثاني، نفس التطبيق أيضاً يعلن عن هدف مستوى واجهة برمجة التطبيقات 5.

 

النتيجة: سيفترض قوقل بلي الآن أن الخاصية مطلوبة وسيقوم بتصفية “عدم إظهار” التطبيق من جميع الأجهزة التي لا تبلغ عن دعمها للبلوتوث.

بما في ذلك الأجهزة التي تعمل على إصدارت قديمة من النظام.

<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.

 

النتيجة: يقوم قوقل بلي بتعطيل التصفية المستندة على دعم خاصية البلوتوث، لجميع الأجهزة.

<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>

 

 

 

 

 

اختبار الخصائص المطلوبة من قبل تطبيقك


يمكنك إستخدام أداة aapt، المضمنة في أندرويد SDK، لتحديد كيفية قيام قوقل بلي بتصفية تطبيقك، بناءً على خصائصه و أذوناته المعلنه.

للقيام بذلك، قم بتشغيل الأداه aapt بالأمر dump badging. سيؤدي هذا إلى قيام أداة aapt بتحليل ملف إيضاح تطبيقك و تطبيق نفس القواعد المستخدمة من قبل قوقل بلي لتحديد الخصائص التي يتطلبها تطبيقك.

 

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

 

1- أولاً، قم بإنشاء تطبيقك وتصديره كملف .apk غير موقع. إذا كنت تستخدم أندرويد ستوديو لتطوير تطبيقك، فقم بإنشاء تطبيقك بإستخدام Gradle:

– افتح المشروع ثم أختر تشغيل > تحرير التكوينات.

– اختر علامة “+” بالقرب من الزاوية العلوية اليسرى من نافذة تكوينات تشغيل\تصحيح الأخطاء (Run/Debug).

– اختر Gradle.

– أدخل ملف APK الغير موقع في الاسم.

– اختر نموذجك من قسم مشروع Gradle.

– ادخل التجميع في مهام.

– اختر موافق لإكمال التكوين الجديد.

– تأكد من تحديد تشغيل تكوينات  Unsigned APK  في شريط الأدوات و اختر تشغيل > تشغيل ملف APK الغير موقع.

يمكنك العثور على ملفك .apk الغير موقع  في الدليل (/ProjectName>/app/build/outputs/apk>).

 

2- بعد ذلك، حدد أداة aapt، إذا لم تكن في مسارك بالفعل. إذا كنت تستخدم أدوات SDK النسخة r8 أو أعلى، يمكنك العثور على أداة aapt في الدليل:

<SDK>/build-tools/<tools version number>.

 

ملاحظة: يجب عليك إستخدام نسخة aapt التي تم توفيرها لأحدث مكونات أدوات بناء متاحة. إذا لم يكن لديك أحدث مكون لأدوات البناء، فقم بتنزيله بإستخدام Android SDK Manager.

3- قم بتشغيل أداة aapt بإستخدام الجملة التاليه:

$ aapt dump badging <path_to_exported_.apk>

إليك مثال على مخرجات الأمر لمثال البلوتوث الثاني أعلاه:

$ ./aapt 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

يستخدم التطبيق خاصية البلوتوث منخفض النطاق للجهاز.

 

 

 

 

خصائص الكاميرا (هاردوير)

android.hardware.camera

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

لذا إستخدم خاصية android.hardware.camera.any بدلاً من ذلك إذا كان بإمكان تطبيقك الإتصال بأي كاميرا، بغض النظر عن جهة الكاميرا.

 

android.hardware.camera.any

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

إستخدم هذه القيمة بدلاً من android.hardware.camera إذا كان تطبيقك لا يتطلب أن تكون الكاميرا خلفية.

 

android.hardware.camera.autofocus

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

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

 

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 (الخام raw) وأن كاميرا الجهاز توفر البيانات الوصفية المرتبطة بـ DNG الضرورية لتطبيقك ليقوم بمعالجة هذه الصور الخام مباشرة.

 

android.hardware.camera.external

يتصل الجهاز بكاميرا خارجية يقوم المستخدم بربطها بالجهاز.

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

 

android.hardware.camera.flash

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

بإستخدام هذه الخاصية، يشير التطبيق إلى أنه يستخدم أيضاً خاصية android.hardware.camera، ما لم يتم الإعلان عن هذه الخاصية الرئيسية بإستخدام "android:required="false.

 

android.hardware.camera.front

يستخدم التطبيق كاميرا الجهاز الأماميه.

بإستخدام هذه الخاصية، يشير التطبيق إلى أنه يستخدم أيضاً خاصية android.hardware.camera ما لم يتم الإعلان عن هذه الخاصية الرئيسية بإستخدام "android:required="false.

android.hardware.camera.level.full

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

الكاميرا ذات الدعم الكامل توفر إمكانية إلتقاط الصور المتتابعه، التحكم في كل إطار، والتحكم اليدوي بعد المعالجة.

 

 

 

 

خصائص واجهة مستخدم الجهاز (هاردوير)

android.hardware.type.automotive

تم تصميم التطبيق ليعرض واجهة مستخدم على مجموعة من الشاشات بداخل السيارة.

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

تظهر شاشات السيارة عادة، في وحدة التحكم المركزية أو في شاشة عداد المقاييس في السيارة.

هذه الشاشات عادة ما تكون محدودة الحجم والتصميم.

ملاحظة: من المهم أن تضع في إعتبارك أن المستخدم يقود السيارة أثناء إستخدامه لهذا النوع من تطبيقات واجهة المستخدم، يجب أن يقلل التطبيق من تشتيت السائق.

 

android.hardware.type.television

(خاصية موقوفه؛ إستخدم android.software.leanback بدلاً منها).

تم تصميم التطبيق ليعرض واجهة مستخدمه على التلفاز. تقوم هذه الخاصية بتعريف “التلفاز” ليكون تجربة تلفزيونيه مثاليه في غرفة المعيشه:

تعرض على شاشة كبيرة، حيث يجلس المستخدم بعيداً ويتحكم في الإدخال من خلال أداة تحكم كجهاز “دي باد”، وعادة لا يستخدم الماوس، المؤشر، ولا يلمس الجهاز.

 

android.hardware.type.watch

تم تصميم التطبيق ليعرض واجهة مستخدمه على الساعة. يتم إرتداء الساعة على المعصم.

يكون المستخدم قريباً جداً من الجهاز أثناء التفاعل معه.

 

 

 

خصائص البصمه (هاردوير)

android.hardware.fingerprint

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

 

خصائص وحدة تحكم الألعاب (هاردوير)

android.hardware.gamepad

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

 

خصائص الأشعة تحت الحمراء (هاردوير)

android.hardware.consumerir

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

 

خصائص الموقع (هاردوير)

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

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

 

خصائص OpenGL ES (هاردوير)

android.hardware.opengles.aep

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

 

خصائص جهاز الإستشعار

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 سواء بالإتجاه الأفقي أو الأفقي العكسي أو مستشعر الأفقي، فسيكون تطبيقك متاحاً فقط على الأجهزة التي تدعم الإتجاه الأفقي.

 

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

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

للتوافق مع الإصدارات السابقه، أي جهاز يعمل على أندرويد 3.1 (API 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.

يتطلب تطبيقك هذه الخاصية بشكلٍ إفتراضي. ولهذا، لا يكون تطبيقك متاحاً للأجهزة التي توفر فقط محاكي واجهة تعمل باللمس (“اللمس المزيف”) بشكلٍ إفتراضي.

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

على سبيل المثال، إذا كان تطبيقك يتطلب دعماً من المستوى 0 لحوسبة Vulkan، فيجب عليك الإعلان عن الخاصية التالية:

<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 للهاردوير، فيجب عليك الإعلان عن الخاصية التالية:

<uses-feature
    android:name="android.hardware.vulkan.level"
    android:version="0"
    android:required="true" />

 

للحصول على مزيد من التفاصيل حول إصدار الخاصية، راجع FEATURE_VULKAN_HARDWARE_LEVEL.

 

android.hardware.vulkan.version

التطبيق يتطلب دعماً من الحد الأدنى، لإصدار واجهة برمجة تطبيقات Vulkan، والذي تم تحديده بواسطة إصدار الخاصية.

على سبيل المثال، إذا كان تطبيقك يتطلب دعم الغصدار 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 الموجودة على الجهاز.

android.hardware.wifi.direct

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

 

 

 

خصائص البرامج (سوفتوير)

 

يقدم هذا القسم خصائص البرامج المدعومة من قبل معظم الإصدارات الحاليه لنظام الأندرويد.

للإشارة إلى أن تطبيقك يستخدم أو يتطلب خاصية برامج (سوفتوير)، أعلن عن القيمة المطابقه (بدءاً بـ”android.software“) في سمة الاسم android:name.

كل مرة تقوم فيها بإعلان خاصية برامج، إستخدم عناصر <uses-feature> منفصله.

 

 

خصائص برامج الإتصالات

android.software.sip

يستخدم التطبيق خدمات بروتوكول بدء الجلسه (SIP).

بإستخدام هذا البروتوكول، يمكن للتطبيق أن يدعم عمليات الإتصال الهاتفي عبر الأنترنت، مثل المؤتمرات المقامه عن طريق التواصل بالفيديو و المراسلة الفورية.

 

android.software.sip.voip

يستخدم التطبيق خدمات بروتوكول نقل الصوت المعتمدة على بروتوكول SIP، من خلال بروتوكول الأنترنت (VoIP).

بإستخدام بروتوكول VoIP، يمكن للتطبيق دعم عمليات الإتصال الهاتفي عبر الأنترنت في الوقت الفعلي، مثل مؤتمرات الفيديو ثنائية الإتجاه.

بإستخدام هذه الخاصية، يشير التطبيق إلى أنه يستخدم أيضاً خاصية android.software.sip، ما لم يتم الإعلان عن هذه الخاصية الأساسية بإستخدام "android:required="false.

 

android.software.webview

يعرض التطبيق محتوى من الأنترنت.

خصائص برامج الإدخالات المخصصه android.software.input_methods
يستخدم التطبيق أسلوب إدخال جديد، والتي يقوم المطور بتعريفها في InputMethodService.

 

خصائص برامج الإدخالات المخصصه

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.software.live_tv

التطبيق يبث برامج التلفزيون المباشرة.  إستخدام الخواص إستخدام الخواص إستخدام الخواص إستخدام الخواص

 

خصائص واجهة الشاشة

android.software.app_widgets

يستخدم التطبيق او يوفر تطبيق الواجهات الرسوميه ويجب تثبيته فقط على الأجهزة التي تحتوي على شاشة رئيسية أو مكان مشابه، حيث يمكن للمستخدمين تضمين الواجهات الرسومية للتطبيقات.

android.software.home_screen

يعمل التطبيق كبديل للشاشة الرئيسية للجهاز.

android.software.live_wallpaper

يستخدم التطبيق أو يوفر خلفيات متحركة.

 

 

 

 

 

أذونات تشير إلى خصائص مطلوبة


بعض من ثوابت خصائص البرامج و الأجهزة تم توفيرها للتطبيقات، بعد واجهة برمجة التطبيقات المتوافقه معها.

مثال، خاصية android.hardware.bluetooth تمت إضافتها في أندرويد 2.2 (API 8)، ولكن واجهة برمجة البلوتوث التي تشير إليها تمت إضافتها في أندرويد 2.0 (API 5).

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

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

مثال، تطبيق يستخدم البلوتوث يجب أن يطلب أذونات البلوتوث في عنصر <uses-permission> – بالنسبة إلى

التطبيقات السابقه، يفترض قوقل بلي بأن الإعلان عن الأذونات يعني أن خاصية android.hardware.bluetooth الأساسية مطلوبة من قبل التطبيق.

 

و يتم إعداد التصفية بناءً على هذه الخاصية. يسرد الجدول 2 الأذونات التي تشير إلى متطلبات الخصائص المساويه لتلك المعلنه في عناصر <uses-feature>.

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

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

مثال، لتعطيل أي تصفية بناءً على أذونات الكاميرا، سترغب في إضافة هذا الإعلان <uses-feature> إلى ملف الإيضاح:  إستخدام الخواص إستخدام الخواص إستخدام الخواصالخواص  إستخدام الخواص إستخدام الخواص  إستخدام إستخدام الخواص إستخدام الخواص

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

 

 

تحذير: إذا كان تطبيقك يستهدف أندرويد 5.0 (API 21) أو أعلى، ويستخدم أذونات ACCESS_COARSE_LOCATION أو ACCESS_FINE_LOCATION لتلقي تحديثات الموقع من الشبكة أو من نظام تحديد المواقع العالمي GPS.

على التوالي، يجب أيضاً أن تعلن صراحة أن تطبيقك يستخدم خصائص الأجهزة android.hardware.location.network أو android.hardware.location.gps.

جدول2. أذونات الجهاز التي تشير إلى الجهاز المستخدم بداخل الجهاز.

التصنيف هذه الأذن… …تشير إلى متطلبات هذه الخاصية
Bluetooth البلوتوث BLUETOOTH البلوتوث android.hardware.bluetooth

(للحصول على التفاصيل راجع التعامل الخاص لخاصية البلوتوث)

BLUETOOTH_ADMIN مدير البلوتوث android.hardware.bluetooth
Camera الكاميرا CAMERA الكاميرا android.hardware.camera و
android.hardware.camera.autofocus
Location الموقع 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 أو أقل)

Microphone الميكروفون

RECORD_AUDIO

التسجيل الصوتي

android.hardware.microphone
Telephony الهاتف 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

كتابة إعدادات اسم نقطة الوصول 

APN – Access Point Name

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

 

 

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات