[עדכון: פרטים נוספים] אנדרואיד 11 חוסמת אפליקציות מצלמה של צד שלישי מלהופיע בכוונות בחירת תמונה/סרטון

אנדרואיד 11 מיישמת שינוי שימנע מאפליקציות מצלמה של צד שלישי להופיע בפעולות של בחירת תמונה/סרטון.

עדכון 1 (20/08/2020 @ 18:15 ET): גוגל עדכנה את תיעוד המפתחים שלה כדי להסביר מדוע אפליקציות מצלמה של צד שלישי באנדרואיד 11 אינן מסוגלות להגיב לפעולות כוונות תמונה/וידאו מרומזות. גלול לתחתית למידע נוסף. המאמר כפי שפורסם ב-19 באוגוסט 2020 נשמר להלן.

אנדרואיד 11 משנה את הדרך שבה אפליקציות מתקשרות איתן אפליקציות מצלמה של צד שלישי במכשיר שלך, מה שימנע מהם להופיע בכוונות בחירת תמונה/סרטון. בגרסאות ישנות יותר של אנדרואיד, אם אפליקציה רוצה לאפשר למשתמשים לצלם תמונה היא יכולה ליישם צילום תמונות בתוך האפליקציה (באמצעות ממשקי ה-API של המצלמה השונים של אנדרואיד) או שהוא יכול לשלוח כוונה שניתן לטפל בה על ידי אפליקציית מצלמה ייעודית כדי ללכוד את התמונה במקום זאת. אם אפליקציה מחליטה ללכת עם האפשרות השנייה, למשתמשים במהדורות אנדרואיד ישנות יותר יוצגו תיבת דו-שיח לבחירת אפליקציית המצלמה לפי בחירתם כדי ללכוד את התמונה. תיבת הדו-שיח מציגה בדרך כלל את כל אפליקציות המצלמה המותקנות במכשיר של המשתמש, כולל אפליקציות מצלמה של צד שלישי, כל עוד הן נכתבות כדי להגיב לכוונות מסוימות. עם זאת, עם אנדרואיד 11, תיבת הדו-שיח תכלול רק אפליקציות מצלמות מותקנות מראש, אלא אם מפתחים מכוונים ספציפית לאפליקציות מצלמות מסוימות של צד שלישי.

השינוי למעשה אומר שברוב המקרים, משתמשים יצטרכו להפעיל ידנית אפליקציות מצלמה של צד שלישי כשהם רוצים לצלם, מה שהופך את אפליקציות המצלמה של צד שלישי לפחות נוחות לשימוש. זה גם יגרום למשתמשים להאשים מפתחים של אפליקציות מצלמה של צד שלישי כאשר המשתמש יגלה שאי אפשר להפעיל יותר את אפליקציית המצלמה המועדפת עליהם מאפליקציות אחרות. גוגל מיישמת את השינוי הזה באנדרואיד 11 על ידי מניעת אפליקציות מצלמה של צד שלישי להגיב לפעולות הכוונה הבאות:

  • android.media.action.VIDEO_CAPTURE
  • android.media.action.IMAGE_CAPTURE
  • android.media.action.IMAGE_CAPTURE_SECURE

גוגל אומר שהשינוי הזה הוגדר באנדרואיד 11 כדי להגן על הפרטיות והאבטחה של המשתמשים שלה. החברה לא מפרטת כיצד, אך סביר להניח שכמה אפליקציות זדוניות התחזו לאפליקציות מצלמה כדי לקבל גישה לתמונות של משתמש. עם זאת, החברה מזכירה דרך לעקיפת הבעיה עבור מפתחים שתאפשר לאפליקציות עדיין להשיק אפליקציות מצלמה של צד שלישי. הדרך לעקיפת הבעיה מחייבת מפתחים למקד לאפליקציית צד שלישי ספציפית לפי בחירתם בעת שליחת כוונה. לדוגמה, המפתח של אפליקציית סורק מסמכים יכול לשלוח כוונה מפורשת להפעלה מצלמת Adobe Photoshop במקום לשלוח כוונה מרומזת לפתוח את בוחר המצלמה. אנדרואיד 11 עושה את זה כך שמפתחים לא יכולים אפילו לשאול את רשימת האפליקציות שיכולות להגיב ל-3 האמורות לעיל פעולות כוונה, מה שאומר שמפתח יצטרך לדעת מראש באילו אפליקציות מצלמה של צד שלישי הוא רוצה תמיכה.

מָקוֹר: CommonsWare, מפתחי אנדרואיד

באמצעות: Reddit

תודה לחבר בכיר ב-XDA AndroidDeveloperLB על הטיפ!

עדכון 1: גוגל אומרת שהשינוי הזה נועד לשמור על פרטיות

גוגל עדכנה את דף שינויי ההתנהגות שלה באנדרואיד 11 עם מידע חדש על "פעולות כוונת מדיה דורשות מצלמת ברירת מחדל של המערכת" קטע (דרך הגבול). השינוי, מסבירה גוגל, "נועד להבטיח שמטא-נתונים של מיקום EXIF ​​יעובדו בצורה נכונה בהתבסס על הרשאות המיקום המוגדרות ב- אפליקציה שולחת את הכוונה." בעיקרון, גוגל מודאגת מכך שאפליקציות שעדיין לא קיבלו גישה מפורשת למיקום גורמות למשתמשים לפתוח אפליקציות מצלמה יש קיבלה גישה למיקום, ומכיוון שהתמונה המתקבלת שהועברה לאפליקציה יכולה להכיל מיקום EXIF מטא נתונים, אז האפליקציה המתקשרת יכולה לעקוף את הבקשה לגישה למיקום על ידי קריאת נתוני המיקום מה- תמונה. אם אפליקציה תנסה לעשות זאת באנדרואיד 11, היא תצטרך להצהיר ACCESS_MEDIA_LOCATION בנוסף ל ACCESS_COARSE_LOCATION אוֹ ACCESS_FINE_LOCATION הרשאות כדי לקרוא מטא נתונים של מיקום EXIF. (של פתק, גוגל סגרה פרצה נוספת של גישה למיקום ב-Android 10 על ידי דרישת אפליקציות לבקש את ACCESS_MEDIA_LOCATION הרשאה אם ​​אפליקציה מנסה לאחזר מטא-נתונים של EXIF ​​שלא עברו שינויים מתמונות.)

אמנם שינוי התנהגות זה ישפיע על היכולת של אפליקציות להפעיל את אפליקציית ברירת המחדל של המצלמה המוגדרת על ידי המשתמש בגלל מידת הישן והשימוש התכוף של ה-3 פעולות הכוונה שהוזכרו לעיל הן, גוגל מציינת שהשינוי אינו משפיע על כל פעולות הכוונה שיכולות להפעיל את אפליקציית ברירת המחדל של המצלמה המוגדרת על ידי המשתמש, כגון כפי ש: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, או android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. עם זאת, כוונות אלו אינן משרתות את אותה מטרה, מכיוון שהן משיקות רק את אפליקציית המצלמה המוגדרת כברירת מחדל במקום לאפשר שליחת תמונה חזרה לאפליקציית המתקשרים.