Google Play משתמשת ב<uses-feature>
רכיבים שהוצהרו בקובץ המניפסט של האפליקציה כדי לסנן את האפליקציה ממכשירים
שלא עומדים בדרישות של תכונות החומרה והתוכנה שלו.
על ידי ציון התכונות הנדרשות לאפליקציה, מאפשרת ל-Google Play להציג את האפליקציה רק למשתמשים מכשירים עומדים בדרישות התכונה של האפליקציה, במקום להציג אותם לכל המשתמשים.
לקבלת מידע חשוב על האופן שבו ב-Google Play אנחנו משתמשים בתכונות כבסיס לסינון, בקטע Google Play וסינון מבוסס-תכונות.
- תחביר:
-
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" />
- בתוך:
<manifest>
- תיאור:
מצהירה על תכונת חומרה או תוכנה יחידה שנמצאת בשימוש של תרגום מכונה.
המטרה של ההצהרה על
<uses-feature>
היא לספק מידע כל ישות חיצונית מתוך קבוצת החומרה והתוכנה כוללת תלויה בכך. הרכיב מציע מאפיין מסוגrequired
מאפשר לציין אם האפליקציה דורשת או לא יכולה לפעול בלי את התכונה המוצהרת או שהיא מעדיפה את התכונה, אבל יכולה לפעול בלי זה.התמיכה בתכונות שונות במכשירי Android שונים, לרכיב
<uses-feature>
יש תפקיד חשוב לאפשר שמתארות את התכונות של משתני המכשיר שבהן הוא משתמש.קבוצת התכונות הזמינות שהוצהרו על ידי האפליקציה תואמת קבוצת קבועי התכונות שזמינים על ידי
PackageManager
של Android. קבועי התכונות רשומים הקטע הסבר על תכונות ב- במסמך הזה.עליך לציין כל תכונה בקובץ
<uses-feature>
נפרד לכן, אם האפליקציה שלך דורשת מספר תכונות, היא מצהירה מספר רכיבי<uses-feature>
. לדוגמה, אפליקציה שדורשות גם תכונות Bluetooth וגם תכונות מצלמה במכשיר, לפי הצהרה שני הרכיבים הבאים:<uses-feature android:name="android.hardware.bluetooth" android:required="true" /> <uses-feature android:name="android.hardware.camera.any" android:required="true" />
באופן כללי, תמיד צריך להצהיר רכיבי
<uses-feature>
לכל התכונות שנדרשת.רכיבי
<uses-feature>
שהוצהרו הם למידע בלבד, כלומר שמערכת Android עצמה לא בודקת אם יש תמיכה בתכונות תואמות במכשיר לפני התקנת אפליקציה.אבל בשירותים אחרים כמו Google Play, ואפליקציות יכולות לבדוק את
<uses-feature>
הצהרות במסגרת טיפול או אינטראקציה עם האפליקציה שלכם. לכן חשוב מאוד להצהיר על כל התכונות שבהן האפליקציה משתמשת.בשביל חלק מהתכונות, יכול להיות שיש מאפיין ספציפי שמאפשר לכם להגדיר גרסה של התכונה, כמו גרסת Open GL שבה נעשה שימוש (מוצהר עם
glEsVersion
). תכונות אחרות שעושות או לא קיימים עבור מכשיר, כמו מצלמה, מוצהרים באמצעותname
.למרות שהרכיב
<uses-feature>
מופעל רק עבור במכשירים עם API ברמה 4 ומעלה, צריך לכלול את הרכיבים האלה עבור כל אפילו אםminSdkVersion
הוא 3 ומטה. מכשירים שפועלות בהם גרסאות ישנות יותר של הפלטפורמה מתעלמים את הרכיב.הערה: כשמצהירים על תכונה, חשוב לזכור שתצטרכו גם לבקש הרשאות לפי הצורך. לדוגמה, אתם צריכים לבקש את
CAMERA
הרשאה לפני שהאפליקציה שלך תוכל לגשת לממשק ה-API של המצלמה. מבקשים מעניקה לאפליקציה שלך גישה לחומרה המתאימה תוכנה. הצהרה על התכונות שהאפליקציה משתמשת בהן עוזרת להבטיח תאימות של המכשיר תואם.- :
-
-
android:name
- מציין תכונת חומרה או תוכנה יחידה שהאפליקציה משתמשת בה בתור מחרוזת מתאר. ערכי המאפיינים החוקיים מופיעים בקטעים תכונות חומרה ותוכנה תכונות. ערכי המאפיינים האלה הם תלויי אותיות רישיות.
-
android:required
-
ערך בוליאני שמציין אם האפליקציה דורשת את התכונה
צוין ב-
android:name
.- הצהרה על
android:required="true"
לגבי תכונה מסוימת מציינת האפליקציה לא יכולה לתפקד, או שאינה יכולה נועד לפעול, כשהתכונה שצוינה לא קיימת במכשיר. - הצהרה על
android:required="false"
לגבי תכונה מסוימת מציינת האפליקציה משתמשת בתכונה, אם היא קיימת של המכשיר, אלא שהוא מיועד לפעול בלי אם יש צורך.
ערך ברירת המחדל של
android:required
הוא"true"
. - הצהרה על
android:glEsVersion
- גרסת OpenGL ES נדרשת על ידי האפליקציה. ככל ש-16 הביטים גבוהים יותר
שמייצג את המספר הראשי, ו-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: לציין רק את הגרסה המספרית הנמוכה ביותר של OpenGL ES שנחוצה לה. הוא יכול לבדוק בזמן הריצה אם יש רמה גבוהה יותר של OpenGL ES זמינה.
למידע נוסף על השימוש ב-OpenGL ES, כולל הוראות לבדיקת OpenGL ES הנתמך שבסביבת זמן הריצה, ראו OpenGL ES מדריך API.
-
- הושקו ב:
- רמת API 4
- למידע נוסף:
Google Play וסינון מבוסס-תכונות
Google Play מסננת את האפליקציות שגלויות למשתמשים, כדי משתמשים יכולים לראות ולהוריד רק את האפליקציות שתואמות ל- במכשיר שלהם. אחת הדרכים שבהן הוא מסנן אפליקציות היא לפי תכונה בתאימות מלאה.
כדי לקבוע את תאימות התכונות של אפליקציה עם מאפיין משתמש נתון במכשיר, מתבצעת השוואה בין Google Play לבין:
- תכונות שנדרשות על ידי האפליקציה, כפי שהוצהר ב-
רכיבי
<uses-feature>
במניפסט של האפליקציה. - התכונות הזמינות במכשיר, בחומרה או בתוכנה, כפי שדווחו באמצעות מאפייני מערכת לקריאה בלבד.
מנהל החבילות של Android מאפשר להשוות בצורה מדויקת בין התכונות
מספקת קבוצה משותפת של קבועי תכונות שגם אפליקציות וגם מכשירים
משמש להצהרה על דרישות התכונה ועל תמיכה. קבועי התכונות הזמינים
מפורטות בקטע מאמרי עזרה על תכונות
במסמך הזה ובמסמכים לכיתה
PackageManager
.
כשהמשתמש מפעיל את Google Play, האפליקציה שולחת שאילתה אל
למנהל החבילות כדי לראות את רשימת התכונות הזמינות במכשיר על ידי התקשרות
getSystemAvailableFeatures()
לאחר מכן אפליקציית החנות מעבירה את רשימת התכונות ל-Google Play
כשיוצרים את הסשן עבור המשתמש.
בכל פעם שאתם מעלים אפליקציה ל-Google Play Console,
Google Play סורקת את קובץ המניפסט של האפליקציה. הוא מחפש
רכיבי <uses-feature>
והערכה שלהם יחד
עם רכיבים אחרים, במקרים מסוימים כמו <uses-sdk>
רכיבי <uses-permission>
. לאחר ביסוס
של האפליקציה שלך, היא מאחסנת את הרשימה הפנימית בתור
מטא-נתונים שמשויכים ל-APK של האפליקציה ולאפליקציה
.
כשמשתמש מחפש אפליקציה או מעיין באפליקציות באמצעות Google Play האפליקציה, השירות משווה את התכונות הנדרשות לכל אפליקציה עם התכונות הזמינות במכשיר של המשתמש. אם כל הדרישות של האפליקציה קיימות במכשיר, Google Play מאפשר למשתמש לראות של האפליקציה ועשויה להוריד אותה.
אם יש תכונה נדרשת שלא שנתמך על ידי המכשיר, Google Play מסננת את האפליקציה כדי גלויות למשתמש או זמינות להורדה.
בגלל התכונות שעליהן הצהרת בהצהרה <uses-feature>
משפיעים ישירות על האופן שבו Google Play מסננת את האפליקציה,
חשוב להבין איך מתבצעת הערכה של המניפסט של האפליקציה ב-Google Play
וליצור את קבוצת התכונות הנדרשות. בקטעים הבאים תמצאו עוד
מידע.
סינון לפי תכונות שהוצהרו במפורש
תכונה שהוצהרה במפורש היא תכונה שהאפליקציה מצהירה עליה
רכיב <uses-feature>
. הצהרת התכונה יכולה לכלול
מאפיין android:required=["true" | "false"]
אם
הידור לפי רמת API 5 ומעלה.
כך אפשר לציין אם
דורש את התכונה ולא יכול לפעול כראוי ללא
אותו ("true"
) או משתמש בתכונה
אם הוא זמין, אבל הוא נועד לפעול בלי הקוד ("false"
).
מערכת Google Play מטפלת בתכונות שהוצהרו במפורש באופן הזה:
- אם מוצהר במפורש שתכונה מסוימת נדרשת, כפי שמוצג בהמשך
לדוגמה, Google Play מוסיף
את התכונה לרשימת התכונות הנדרשות עבור האפליקציה. לאחר מכן
מסנן את האפליקציה ממשתמשים במכשירים שלא מספקים את התכונה הזו.
<uses-feature android:name="android.hardware.camera.any" android:required="true" />
- אם מוצהר במפורש שתכונה מסוימת לא נדרשת, כפי שמוצג ב-
בדוגמה הבאה, Google
מערכת Play לא מוסיפה את התכונה לרשימת התכונות הנדרשות. עבור
מהסיבה הזו, תכונה שאינה נדרשת שהוצהרה באופן מפורש לעולם לא תשוקלל
לסנן את האפליקציה. גם אם המכשיר לא מספק את
התכונה הזו, Google Play עדיין מתייחסת לאפליקציה כתואם
המכשיר ומציגה אותו למשתמש, אלא אם חלים כללי סינון אחרים.
<uses-feature android:name="android.hardware.camera" android:required="false" />
- אם הוצהרה במפורש על תכונה, אבל בלי
android:required
, Google Play מניחה שהתכונה הוא חובה, והוא מגדיר סינון לפיו.
באופן כללי, אם האפליקציה מיועדת לפעול ב-Android מגרסה 1.6 ומטה,
המאפיין android:required
לא זמין
וב-Google Play מניחים שכל
נדרשות <uses-feature>
הצהרות.
הערה: הצהרה על תכונה באופן מפורש
כולל המאפיין android:required="false"
, אפשר
להשבית ביעילות את כל הסינון ב-Google Play לתכונה שצוינה.
סינון לפי תכונות משתמעות
תכונה משתמעת היא תכונה שנדרשת לאפליקציה כדי
כראוי, אבל לא מוצהרות
רכיב <uses-feature>
בקובץ המניפסט. באופן מחמיר
עדיף שכל אפליקציה תהצהיר תמיד על כל התכונות שהיא
משתמש או נדרש, והיעדר הצהרה עבור תכונה שמשמשת
נחשבת כשגיאה.
אבל, כאמצעי הגנה למשתמשים מפתחים של Google Play מחפשים תכונות מרומזות בכל אפליקציה שמגדירה מסננים לתכונות האלה, כמו שהיא עושה תכונות מוצהרות.
יכול להיות שבאפליקציה תידרשו להשתמש בתכונה, אבל לא תצהירו על כך מסיבות כמו:
- האפליקציה נוצרה מול גרסה ישנה יותר של ספריית Android
(Android 1.5 או גרסאות קודמות), שבהן הרכיב
<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
,
להצהיר (declare) על התכונות הבאות:
<uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
זהירות: הרשאות שביקשתם
רכיבי <uses-permission>
יכולים להשפיע ישירות על האופן שבו Google
Play מסננים את האפליקציה.
הקטע הרשאות שמרמזות על דרישות של תכונות מפרט את
את כל ההרשאות שמרמזות על דרישות של תכונות, ומפעילות
סינון.
טיפול מיוחד בתכונת Bluetooth
ב-Google Play חלים כללים מעט שונים מאלה שתוארו בדוגמה הקודמת, כאשר של סינון ל-Bluetooth.
אם אפליקציה מצהירה על הרשאת Bluetooth
רכיב <uses-permission>
אבל לא מוצהר במפורש
את תכונת ה-Bluetooth ברכיב <uses-feature>
, Google
אפליקציית Play בודקת את הגרסאות של פלטפורמת Android שבה האפליקציה
שמיועד לפעול, כפי שצוין ברכיב <uses-sdk>
.
כפי שמוצג בטבלה הבאה, Google Play מאפשר סינון עבור
תכונת Bluetooth רק אם האפליקציה מצהירה שהרמה הנמוכה ביותר או המטורגטת שלה
Android 2.0 (רמת API 5) ומעלה. אבל שימו לב ש-Google
מערכת Play מחילה את הכללים הרגילים לסינון כשהאפליקציה באופן מפורש
היא מצהירה על תכונת ה-Bluetooth ברכיב <uses-feature>
.
minSdkVersion הוא ... |
targetSdkVersion הוא |
התוצאה |
---|---|---|
<uses-sdk> לא מוצהר |
<=4 | Google Play לא מסננת את האפליקציה מאף מכשיר
בהתאם לתמיכה המדווחת בandroid.hardware.bluetooth
. |
<=4 | >=5 | Google Play מסננת את האפליקציה מכל המכשירים שלא תומכים בתכונה android.hardware.bluetooth (כולל
או גרסאות ישנות יותר). |
>=5 | >=5 |
הדוגמאות הבאות ממחישות את השפעות הסינון השונות, בהתאם לאופן שבו Google Play מטפל בתכונת ה-Bluetooth.
-
בדוגמה הראשונה, אפליקציה שמיועדת לפעול ברמות API ישנות יותר
הצהרה על הרשאת Bluetooth אבל לא מצהירה על תכונת ה-Bluetooth
רכיב
- תוצאה: Google Play לא מסננת את האפליקציה מכל מכשיר.
<uses-feature>
.
<manifest ...> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" /> ... </manifest>
-
בדוגמה השנייה, אותה אפליקציה גם מצהירה על יעד
רמת ה-API '5'.
- התוצאה: ב-Google Play מניחים שהתכונה נדרשת מסנן את האפליקציה מכל המכשירים שלא מדווחים על תמיכה ב-Bluetooth, כולל מכשירים שפועלות בהם גרסאות ישנות יותר של הפלטפורמה.
<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 משביתה את הסינון על סמך Bluetooth תמיכה בתכונות בכל המכשירים.
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
, שכלול ב-Android SDK,
לקבוע איך Google Play מסננת את האפליקציה על סמך ההצהרה
לתכונות ולהרשאות. כדי לעשות זאת, מריצים את הפקודה aapt2
באמצעות הפקודה dump
badging
. כתוצאה מכך aapt2
מנתח את
במניפסט של האפליקציה ולהחיל את אותם כללים שמשמשים את Google Play על
להבין אילו תכונות נדרשות לאפליקציה שלכם.
כדי להשתמש בכלי, מבצעים את השלבים הבאים:
- יוצרים ומייצאים את האפליקציה כ-APK לא חתום.
אם אתם מפתחים ב-Android Studio, עליכם לפתח את האפליקציה באמצעות Gradle, באופן הבא:
- פותחים את הפרויקט ובוחרים באפשרות Run > (הפעלה >) עורכים את ההגדרות האישיות.
- בוחרים בסמל הפלוס ליד הפינה השמאלית העליונה של התפריט Run/Debug חלון ההגדרות האישיות.
- בוחרים באפשרות Gradle.
- מזינים 'APK לא חתום' בקטע Name.
- בוחרים את המודול בקטע Gradle project.
- מזינים את הערך 'assemble'. ב-Tasks.
- לוחצים על OK (אישור) כדי להשלים את ההגדרה החדשה.
- מוודאים שנבחרה ההגדרה של הפעלת APK לא חתום בסרגל הכלים ובוחרים באפשרות הפעלה > מריצים את 'APK לא חתום'.
<ProjectName>/app/build/outputs/apk/
. - מאתרים את הכלי
aapt2
, אם הוא לא נמצא כבר ב-PATH. אם משתמשים ב-SDK Tools בגרסה r8 ואילך, אפשר למצוא אתaapt2
<SDK>/build-tools/<tools version number>
הערה: צריך להשתמש בגרסה של
aapt2
שסופק לרכיב העדכני ביותר של כלי ה-Build. אם המיקום אין לך את הרכיב העדכני ביותר של כלי ה-build, צריך להוריד אותו באמצעות מנהל ה-SDK של Android. - מריצים את הפקודה
aapt2
באמצעות התחביר הבא:
$ aapt2 dump badging <path_to_exported_.apk>
הנה דוגמה לפלט הפקודה בדוגמה השנייה של Bluetooth שמוצגת בעבר:
$ ./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
- האפליקציה מעבירה צלילים באמצעות הרמקולים, שקע האודיו, Bluetooth של המכשיר יכולות סטרימינג או מנגנון דומה.
-
android.hardware.audio.pro
- האפליקציה משתמשת בפונקציות האודיו המתקדמות של המכשיר ובביצועים שלו יכולות.
-
android.hardware.microphone
- האפליקציה מקליטה אודיו באמצעות המיקרופון של המכשיר.
תכונות חומרה של Bluetooth
-
android.hardware.bluetooth
- האפליקציה משתמשת בתכונות ה-Bluetooth של המכשיר, בדרך כלל כדי לתקשר עם במכשירים אחרים עם Bluetooth.
-
android.hardware.bluetooth_le
- האפליקציה משתמשת בתכונות הרדיו של Bluetooth עם צריכת אנרגיה נמוכה של המכשיר.
תכונות של חומרת המצלמה
הערה: כדי למנוע סינון מיותר של האפליקציה באמצעות
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
במקום זאת.)האפליקציה מיועדת להציג את ממשק המשתמש שלה בטלוויזיה. התכונה הזו מגדירה 'television' כמו חוויית טלוויזיה טיפוסית בסלון: האפליקציה שמציגה על מסך גדול, המשתמש יושב רחוק, והצורה הדומיננטית קלט שהוא משהו כמו לוח בקרה, ולא עכבר, מצביע או מכשיר מגע.
-
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) של המכשיר, בדרך כלל כדי תקשורת עם מכשירי 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
- האפליקציה משתמשת בחבילת התוספים ל-Android של 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) האלקטרוקרדיוגרמה (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
-
כדי להשתמש באפליקציה, המכשיר צריך להיות בפריסה לאורך או לרוחב. אם האפליקציה תומכת בשני הכיוונים, אין צורך להצהיר (declare) בכל אחת מהתכונות האלה.
לדוגמה, אם באפליקציה נדרשת פריסה לאורך, להצהיר על התכונה הבאה, כך שרק המכשירים שתומכים האפליקציה יכולה להריץ את האפליקציה בפריסה לאורך, תמיד או לפי בחירת המשתמש:
<uses-feature android:name="android.hardware.screen.portrait" />
ההנחה היא ששני הכיוונים לא נדרשים כברירת מחדל, ולכן האפליקציה התקנה במכשירים שתומכים באחד מהכיוונים או בשניהם. אבל אם כל אחת מהפעילויות שלך מבקשת לרוץ בכיוון מסוים, באמצעות המאפיין
android:screenOrientation
, אז ההצהרה הזו מתייחסת שהאפליקציה שלך דורשת את הכיוון הזה.לדוגמה, אם אתם מצהירים
android:screenOrientation
עם"landscape"
,"reverseLandscape"
או"sensorLandscape"
, אז האפליקציה שלך זמינה רק במכשירים שתומכים בפריסה לרוחב.מומלץ להצהיר על הדרישה הזו כיוון באמצעות רכיב
<uses-feature>
. אם אתם מצהירים כיוון של הפעילות שלך באמצעותandroid:screenOrientation
, אבל לא דורשים אותה, כדי להשבית את הדרישה, צריך להצהיר על הכיוון עם רכיב<uses-feature>
ולכלולandroid:required="false"
.לתאימות לאחור, כל מכשיר שבו פועל Android 3.1 (רמת API 12) ומטה תומכת גם בכיוונים לרוחב וגם לאורך.
תכונות של חומרת טלפוניה
-
android.hardware.telephony
- האפליקציה משתמשת בתכונות הטלפוניה של המכשיר, כמו רדיו טלפוניה עם שירותי תקשורת נתונים.
-
android.hardware.telephony.cdma
-
האפליקציה משתמשת ברדיו הטלפוניה Code Division Multiple Access (CDMA) המערכת.
על ידי השימוש בתכונה הזו, אפליקציה רומזת שהיא משתמשת גם התכונה
android.hardware.telephony
, אלא אם ההורה הזה התכונה הוצהרה עםandroid:required="false"
. -
android.hardware.telephony.gsm
-
האפליקציה משתמשת במערכת הגלובלית (Global System) לתקשורת בנייד (GSM) במערכת הרדיו.
על ידי השימוש בתכונה הזו, אפליקציה רומזת שהיא משתמשת גם התכונה
android.hardware.telephony
, אלא אם ההורה הזה התכונה הוצהרה עםandroid:required="false"
.
תכונות החומרה של מסך המגע
-
android.hardware.faketouch
-
האפליקציה משתמשת באירועי אינטראקציה בסיסיים באמצעות מגע, כמו הקשה גרירה.
כשהתכונה הזו מוצהרת כנדרשת, התכונה מציינת שהאפליקציה תואמים למכשיר רק אם יש במכשיר אמולציה של 'מגע מזויף' או שהוא כולל מסך מגע.
מכשיר שמציע ממשק מגע מזויף מספק מערכת קלט של משתמשים אמולציה של קבוצת משנה של יכולות של מסך מגע. לדוגמה, עכבר או שלט רחוק עשויים להקפיץ סמן במסך.
אם האפליקציה נדרשת אינטראקציה בסיסית של נקודה ולחיצה, והיא לא פועלת עם בקר D-pad בלבד, צריך להצהיר על התכונה הזו. כי זוהי הרמה המינימלית של אינטראקציה במגע, תוכל גם להשתמש באפליקציה שמציינת את התכונה הזו במכשירים עם מגע מורכב יותר ממשקים.
האפליקציות מחייבות את
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
, מכשירי קלט תמיכה בריבוי נגיעות ג'אז יד עם ממשק מגע מזויף. לא תנועות עם חמש אצבעות, כי הקלט מומר לתנועת הסמן שמופיע במסך. כלומר, תנועות עם אצבע אחת במכשיר כזה גורמות סמן, תנועות עם כמה אצבעות גורמות לאירועי מגע באצבע אחת, ותנועות אחרות עם כמה אצבעות יפעילו את התכונה המתאימה אירועי מגע.מכשיר שמספק משטח מגע עם 5 אצבעות לתנועת הסמן יכולים לתמוך בתכונה הזו.
-
android.hardware.touchscreen
-
האפליקציה משתמשת ביכולות של מסך המגע של המכשיר כדי לבצע תנועות יותר אינטראקטיבי מאירועי מגע בסיסיים, כמו החלקה. זהו בקבוצת-על של התכונה
android.hardware.faketouch
.כברירת מחדל, כל האפליקציות מחייבות את התכונה הזו, ולכן הן לא זמינות זמין למכשירים שמספקים רק אמולציה של 'מגע מזויף' גרפי. אפשר להפוך את האפליקציה לזמינה במכשירים שמספקים ממשק מגע מזויף, או אפילו במכשירים שמספקים רק בקר D-pad, על ידי הצהרה מפורשת שמסך מגע לא נדרש שימוש ב-
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 ישיר במכשיר.
תכונות התוכנה
חלק זה מציג את תכונות התוכנה הנתמכות על ידי
מהדורת פלטפורמה. כדי לציין שהאפליקציה שלך משתמשת בתוכנה או דורשת תוכנה
מאפיין, הצהרה על הערך המתאים, שמתחיל ב-
"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
- האפליקציה מתחברת לכלי נגינה או מפיקה אודיו באמצעות כלי הנגינה Instrument Digital Interface (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
- האפליקציה משתמשת בטפטים שכוללים אנימציה או מספקת אותם.
הרשאות שמרמזות על דרישות של תכונות
קבועים מסוימים של תכונות חומרה ותוכנה זמינים עבור
אחרי ממשק ה-API התואם. לכן, אפליקציות מסוימות עשויות להשתמש ב-API לפני
הם יכולים להצהיר שהם דורשים את ה-API באמצעות
מערכת <uses-feature>
.
כדי שהאפליקציות האלה לא יהיו זמינות בטעות, Google Play
מניח שהרשאות מסוימות שקשורות לחומרה מציינות
כברירת מחדל נדרשות תכונות חומרה בסיסיות. לדוגמה,
אפליקציות שמשתמשות ב-Bluetooth חייבות לבקש את 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" />
זהירות: אם האפליקציה מטרגטת את Android 5.0 (רמת API 21) או
גבוהה יותר ומשתמשת ב-ACCESS_COARSE_LOCATION
או
הרשאת ACCESS_FINE_LOCATION
לקבלת מיקום
מהרשת או מה-GPS, בהתאמה, חייבים גם להגדיר
להצהיר שהאפליקציה שלך משתמשת בandroid.hardware.location.network
או android.hardware.location.gps
תכונות חומרה.
קטגוריה | הרשאה | דרישה משתמעת לתכונה |
---|---|---|
Bluetooth | BLUETOOTH |
android.hardware.bluetooth
לפרטים נוספים, אפשר לעיין במאמר בנושא טיפול מיוחד בתכונת 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 |