ב-Android 6.0 (M) יש תכונות חדשות למשתמשים ולמפתחי אפליקציות. במסמך הזה נספק מבוא לממשקי ה-API החשובים ביותר.
התחילו לפתח
כדי להתחיל לפתח אפליקציות ל-Android 6.0, קודם צריך להוריד את Android SDK. לאחר מכן משתמשים במנהל ה-SDK כדי להוריד את Android 6.0 SDK Platform ואת תמונות המערכת.
עדכון רמת ה-API לטירגוט
כדי לבצע אופטימיזציה טובה יותר של האפליקציה למכשירים עם Android, מגדירים את targetSdkVersion
לערך "23"
, מתקינים את האפליקציה בתמונת מערכת של Android, בודקים אותה ומפרסמים את האפליקציה המעודכנת עם השינוי הזה.
כדי להשתמש בממשקי API של Android תוך תמיכה בגרסאות ישנות יותר, אפשר להוסיף לקוד תנאים שבודקים את רמת ה-API של המערכת לפני שמפעילים ממשקי API שלא נתמכים ב-minSdkVersion
.
מידע נוסף על שמירה על תאימות לאחור זמין במאמר תמיכה בגרסאות שונות של פלטפורמות.
מידע נוסף על אופן הפעולה של רמות API זמין במאמר מהי רמת API?
אימות באמצעות טביעת אצבע
במהדורה הזו יש ממשקי API חדשים שמאפשרים לאמת משתמשים באמצעות סריקות של טביעות אצבע במכשירים נתמכים. אפשר להשתמש בממשקי ה-API האלה בשילוב עם מערכת Android Keystore.
כדי לאמת משתמשים באמצעות סריקת טביעת אצבע, צריך לקבל מופע של הכיתה החדשה FingerprintManager
ולקרוא לשיטה authenticate()
. האפליקציה צריכה לפעול במכשיר תואם
עם חיישן טביעות אצבע. עליכם להטמיע את ממשק המשתמש לצורך אימות טביעת האצבע באפליקציה, ולהשתמש בסמל הסטנדרטי של Android טביעת אצבע בממשק המשתמש.
סמל טביעת האצבע של Android (c_fp_40px.png
) כלול בדוגמה לאימות ביומטרי.
אם אתם מפתחים כמה אפליקציות שמשתמשות באימות טביעת אצבע, חשוב לזכור שכל אפליקציה צריכה לאמת את טביעת האצבע של המשתמש בנפרד.
כדי להשתמש בתכונה הזו באפליקציה, צריך קודם להוסיף את ההרשאה USE_FINGERPRINT
למניפסט.
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
כדי לראות איך מטמיעים אימות בטביעת אצבע באפליקציה, אפשר לעיין בדוגמה לאימות ביומטרי. כדי לראות הדגמה של השימוש בממשקי ה-API לאימות בשילוב עם ממשקי API אחרים ל-Android, אפשר לצפות בסרטון ממשקי API לזיהוי טביעת אצבע ולתשלומים.
אם אתם בודקים את התכונה הזו, צריך לבצע את השלבים הבאים:
- מתקינים את Android SDK Tools Revision 24.3, אם עדיין לא עשיתם זאת.
- כדי להירשם עם טביעת אצבע חדשה במהדמ, עוברים אל הגדרות > אבטחה > טביעת אצבע ופועלים לפי הוראות ההרשמה.
- משתמשים באמולטור כדי לדמות אירועי מגע של טביעת אצבע באמצעות הפקודה הבאה. משתמשים באותה פקודה כדי לדמות אירועי מגע של טביעת אצבע במסך הנעילה או באפליקציה.
adb -e emu finger touch <finger_id>
ב-Windows, יכול להיות שתצטרכו להריץ את הפקודה
telnet 127.0.0.1 <emulator-id>
ואז את הפקודהfinger touch <finger_id>
.
אישור פרטי הכניסה
האפליקציה יכולה לאמת משתמשים על סמך המועד האחרון שבו הם ביטלו את נעילת המכשיר. התכונה הזו מאפשרת למשתמשים לא לזכור סיסמאות נוספות לאפליקציות, ומונעת מכם להטמיע ממשק משתמש משלכם לאימות. באפליקציה צריך להשתמש בתכונה הזו בשילוב עם הטמעה של מפתח ציבורי או סודי לאימות משתמשים.
כדי להגדיר את משך הזמן הקצוב לתפוגה שבו אפשר להשתמש שוב באותו מפתח אחרי אימות המשתמש, צריך להפעיל את השיטה החדשה setUserAuthenticationValidityDurationSeconds()
כשמגדירים KeyGenerator
או KeyPairGenerator
.
מומלץ להימנע מהצגה מוגזמת של תיבת הדו-שיח לאימות מחדש. האפליקציות צריכות לנסות להשתמש באובייקט הקריפטוגרפי קודם, ואם פג תוקף הזמן הקצוב, להשתמש בשיטה createConfirmDeviceCredentialIntent()
כדי לאמת מחדש את המשתמש באפליקציה.
קישור אפליקציות
הגרסה הזו משפרת את מערכת הכוונות של Android באמצעות קישור אפליקציות יעיל יותר. התכונה הזו מאפשרת לשייך אפליקציה לדומיין אינטרנט שבבעלותכם. על סמך השיוך הזה, הפלטפורמה יכולה לקבוע את אפליקציית ברירת המחדל לטיפול בקישור אינטרנט מסוים ולדלג על הבקשה למשתמשים לבחור אפליקציה. במאמר טיפול בקישורים לאפליקציות מוסבר איך מטמיעים את התכונה הזו.
גיבוי אוטומטי לאפליקציות
המערכת מבצעת עכשיו גיבוי ושחזור מלאים של נתונים באופן אוטומטי לאפליקציות. כדי להפעיל את ההתנהגות הזו, האפליקציה צריכה לטרגט את Android 6.0 (רמת API 23). אין צורך להוסיף קוד נוסף. אם משתמשים מוחקים את חשבונות Google שלהם, גם נתוני הגיבוי שלהם נמחקים. במאמר הגדרת גיבוי אוטומטי לאפליקציות מוסבר איך הפיצ'ר הזה פועל ואיך מגדירים את הפריטים שרוצים לגבות במערכת הקבצים.
שיתוף ישיר
במהדורה הזו יש ממשקי API שיעזרו לכם להפוך את השיתוף למשתמשים לאינטואיטיבי ומהיר. מעכשיו אפשר להגדיר יעדים לשיתוף ישיר שמפעילים פעילות ספציפית באפליקציה. היעדים האלה לשיתוף ישיר מוצגים למשתמשים דרך התפריט שיתוף. התכונה הזו מאפשרת למשתמשים לשתף תוכן עם יעדים, כמו אנשי קשר, באפליקציות אחרות. לדוגמה, היעד לשיתוף ישיר עשוי להפעיל פעילות באפליקציה אחרת של רשת חברתית, שמאפשרת למשתמש לשתף תוכן ישירות עם חבר או קהילה ספציפיים באפליקציה הזו.
כדי להפעיל יעדים לשיתוף ישיר, צריך להגדיר מחלקה שמרחיבה את המחלקה ChooserTargetService
. מגדירים את השירות במניפסט. בהצהרה הזו, מציינים את ההרשאה BIND_CHOOSER_TARGET_SERVICE
ומסנן כוונה באמצעות הפעולה SERVICE_INTERFACE
.
בדוגמה הבאה אפשר לראות איך מגדירים את הערך ChooserTargetService
במניפסט.
<service android:name=".ChooserTargetService" android:label="@string/service_name" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service>
לכל פעילות שרוצים לחשוף ל-ChooserTargetService
, מוסיפים אלמנט <meta-data>
בשם "android.service.chooser.chooser_target_service"
למניפסט של האפליקציה.
<activity android:name=".MyShareActivity” android:label="@string/share_activity_label"> <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter> <meta-data android:name="android.service.chooser.chooser_target_service" android:value=".ChooserTargetService" /> </activity>
אינטראקציות קוליות
הגרסה הזו מספקת ממשק API חדש לאינטראקציה קולית, שיחד עם פעולות קוליות מאפשר ליצור חוויות קוליות בשיחות בתוך האפליקציות שלכם. אפשר להפעיל את ה-method isVoiceInteraction()
כדי לברר אם פעולה קולית הפעילה את הפעילות. אם כן, האפליקציה יכולה להשתמש בכיתה VoiceInteractor
כדי לבקש מהמשתמש אישור קולי, לבחור מתוך רשימת אפשרויות ועוד.
רוב האינטראקציות הקוליות מגיעות מפעולה קולית של המשתמש. עם זאת, פעילות של אינטראקציה קולית יכולה להתחיל גם בלי קלט מהמשתמש. לדוגמה, אפליקציה אחרת שהופעלה דרך אינטראקציה קולית יכולה גם לשלוח כוונה להפעלת אינטראקציה קולית. כדי לקבוע אם הפעילות הופעלה מחיפוש קולי של משתמש או מאפליקציה אחרת של אינטראקציה קולית, צריך להפעיל את השיטה isVoiceInteractionRoot()
. אם אפליקציה אחרת הפעילה את הפעילות, השיטה תחזיר את הערך false
. לאחר מכן, יכול להיות שהאפליקציה תציג למשתמש בקשה לאשר שהוא התכוון לבצע את הפעולה הזו.
מידע נוסף על הטמעת פעולות קוליות זמין באתר למפתחים של Voice Actions.
Assist API
הגרסה הזו מציעה למשתמשים דרך חדשה להשתמש באפליקציות שלכם באמצעות עוזרת. כדי להשתמש בתכונה הזו, המשתמש צריך לאפשר לשעון להשתמש בהקשר הנוכחי. אחרי ההפעלה, המשתמש יכול להפעיל את Assistant בכל אפליקציה על ידי לחיצה ארוכה על הלחצן דף הבית.
כדי שהאפליקציה לא תשתף את ההקשר הנוכחי עם העוזרת, אפשר להגדיר את הדגל FLAG_SECURE
. בנוסף לקבוצת המידע הרגילה שהפלטפורמה מעבירה לעוזרת, האפליקציה יכולה לשתף מידע נוסף באמצעות הכיתה החדשה AssistContent
.
כדי לספק לשעון הקשר נוסף מהאפליקציה, פועלים לפי השלבים הבאים:
- מטמיעים את הממשק
Application.OnProvideAssistDataListener
. - כדי לרשום את מעבד האירועים הזה, משתמשים ב-
registerOnProvideAssistDataListener()
. - כדי לספק מידע לפי הקשר ספציפי לפעילות, משנים את הפונקציה החוזרת (callback)
onProvideAssistData()
, ואם רוצים, גם את הפונקציה החוזרת החדשהonProvideAssistContent()
.
התקני אחסון מתאימים
במהדורה הזו, המשתמשים יכולים להשתמש בהתקני אחסון חיצוניים כמו כרטיסי SD. כשמשתמשים בהתקן אחסון חיצוני, המכשיר מוצפן ומפורמט כך שיפעל כמו אחסון פנימי. התכונה הזו מאפשרת למשתמשים להעביר גם אפליקציות וגם נתונים פרטיים של האפליקציות האלה בין התקני אחסון. כשאתם מעבירים אפליקציות, המערכת מתייחסת להעדפה android:installLocation
בקובץ המניפסט.
אם האפליקציה שלכם ניגשת לממשקי ה-API או לשדות הבאים, חשוב לזכור שנתיבי הקבצים שהיא מחזירה משתנים באופן דינמי כשהאפליקציה מועברת בין התקני אחסון פנימיים וחיצוניים. כשיוצרים נתיבי קבצים, מומלץ מאוד לקרוא תמיד לממשקי ה-API האלה באופן דינמי. אל תשתמשו בנתיבים של קבצים שמוגדרים בקוד או בנתיבים של קבצים מלאים שנוצרו בעבר.
Context
אמצעי תשלום:- שדות
ApplicationInfo
:
כדי לנפות באגים בתכונה הזו, אפשר להפעיל את השימוש בכונן USB שמחובר למכשיר Android באמצעות כבל USB On-The-Go (OTG). לשם כך, מריצים את הפקודה הבאה:
$ adb shell sm set-force-adoptable true
התראות
בגרסה הזו נוספו השינויים הבאים ב-API של התראות:
- רמת סינון חדשה
INTERRUPTION_FILTER_ALARMS
שתואמת למצב התראות בלבד של 'נא לא להפריע'. - ערך קטגוריה חדש
CATEGORY_REMINDER
שמשמש להבדיל בין תזכורות שהמשתמשים תזמנו לבין אירועים אחרים (CATEGORY_EVENT
) והתראות (CATEGORY_ALARM
). - סוג חדש של
Icon
שאפשר לצרף להתראות באמצעות השיטותsetSmallIcon()
ו-setLargeIcon()
. באופן דומה, השיטהaddAction()
מקבלת עכשיו אובייקטIcon
במקום מזהה משאב drawable. - שיטה חדשה של
getActiveNotifications()
שמאפשרת לאפליקציות שלך לגלות אילו מההתראות שלהן פעילות כרגע.
תמיכה בסטיילוס Bluetooth
בגרסה הזו יש תמיכה משופרת בקלט של משתמשים באמצעות עט Bluetooth. המשתמשים יכולים להתאים ולחבר עט Bluetooth תואם לטלפון או לטאבלט. כשהעט מחובר, מידע על המיקום ממסך המגע משולב עם מידע על הלחץ והלחצנים מהעט כדי לספק מגוון רחב יותר של ביטוי מאשר באמצעות מסך המגע בלבד. האפליקציה יכולה להאזין ללחיצות על לחצן העט ולבצע פעולות משניות על ידי רישום אובייקטים מסוג View.OnContextClickListener
ו-GestureDetector.OnContextClickListener
בפעילות.
משתמשים בשיטות ובקבועים של MotionEvent
כדי לזהות אינטראקציות עם לחצן העט:
- אם המשתמש נוגע בסטיילוס באמצעות לחצן במסך האפליקציה, השיטה
getTooltype()
מחזירהTOOL_TYPE_STYLUS
. - באפליקציות שמטרגטות ל-Android 6.0 (רמת API 23), ה-method
getButtonState()
מחזירהBUTTON_STYLUS_PRIMARY
כשהמשתמש לוחץ על לחצן הסטיילוס הראשי. אם לעט יש לחצן שני, אותה שיטה מחזירה את הערךBUTTON_STYLUS_SECONDARY
כשהמשתמש לוחץ עליו. אם המשתמש לוחץ על שני הלחצנים בו-זמנית, השיטה מחזירה את שני הערכים ביחד באמצעות אופרטור ה-OR (BUTTON_STYLUS_PRIMARY
|BUTTON_STYLUS_SECONDARY
). -
באפליקציות שמטרגטות לגרסת פלטפורמה נמוכה יותר, השיטה
getButtonState()
מחזירהBUTTON_SECONDARY
(ללחיצה על הלחצן הראשי בסטיילוס),BUTTON_TERTIARY
(ללחיצה משנית על לחצן הסטיילוס) או את שתי האפשרויות.
שיפור בסריקת Bluetooth עם צריכת אנרגיה נמוכה (BLE)
אם האפליקציה מבצעת סריקות של Bluetooth עם צריכת אנרגיה נמוכה, צריך להשתמש בשיטה setCallbackType()
החדשה כדי לציין שרוצים שהמערכת תודיע לקריאה חוזרת (callback) כשהיא תמצא או תראה אחרי זמן רב חבילת פרסום שתואמת לערך ScanFilter
שהוגדר. הגישה הזו לסריקה חסכונית יותר בחשמל בהשוואה למה שנתמך בגרסת הפלטפורמה הקודמת.
תמיכה במהדורה 1 של Hotspot 2.0
הגרסה הזו מוסיפה תמיכה במפרט של 'נקודה לשיתוף אינטרנט' 2.0 'גרסה 1' במכשירי Nexus 6 ו-Nexus 9. כדי
להקצות פרטי כניסה ל-Hotspot 2.0 באפליקציה, צריך להשתמש בשיטות החדשות של המחלקה WifiEnterpriseConfig
, כמו setPlmn()
ו-setRealm()
. באובייקט WifiConfiguration
אפשר להגדיר את השדות FQDN
ו-providerFriendlyName
.
השיטה החדשה isPasspointNetwork()
מציינת אם רשת מזוהה מייצגת נקודת גישה מסוג Hotspot 2.0.
מצב תצוגה 4K
הפלטפורמה מאפשרת עכשיו לאפליקציות לבקש לשדרג את רזולוציית המסך לרינדור באיכות 4K בחומרה תואמת. כדי לשלוח שאילתה לגבי הרזולוציה הפיזית הנוכחית, צריך להשתמש בממשקי ה-API החדשים של Display.Mode
. אם ממשק המשתמש משורטט ברזולוציה לוגית נמוכה יותר ומשודרג לרזולוציה פיזית גדולה יותר, חשוב לזכור שהרזולוציה הפיזית שהשיטה getPhysicalWidth()
מחזירה עשויה להיות שונה מהרזולוציה הלוגית המדווחת על ידי getSize()
.
כדי לבקש מהמערכת לשנות את הרזולוציה הפיזית באפליקציה בזמן שהיא פועלת, מגדירים את המאפיין preferredDisplayModeId
של חלון האפליקציה. התכונה הזו שימושית אם רוצים לעבור לרזולוציית מסך של 4K. במצב תצוגה של 4K, עיבוד ממשק המשתמש ממשיך ברזולוציה המקורית (למשל 1080p) ומתבצע שינוי לרזולוציית 4K, אבל אובייקטים מסוג SurfaceView
עשויים להציג תוכן ברזולוציה המקורית.
ColorStateLists שניתן להתאים לעיצוב
מאפייני העיצוב נתמכים עכשיו ב-ColorStateList
במכשירים עם Android 6.0 (רמת API 23). השיטות Resources.getColorStateList()
ו-Resources.getColor()
הוצאו משימוש. אם אתם קוראים ל-API האלה, כדאי להשתמש במקום זאת בשיטות החדשות Context.getColorStateList()
או Context.getColor()
. השיטות האלה זמינות גם בספריית האפליקציות בגרסת v4 דרך ContextCompat
.
תכונות אודיו
בגרסה הזו נוספו שיפורים לעיבוד האודיו ב-Android, כולל:
- תמיכה בפרוטוקול MIDI באמצעות ממשקי ה-API החדשים של
android.media.midi
. משתמשים בממשקי ה-API האלה כדי לשלוח ולקבל אירועי MIDI. - הכיתות החדשות
AudioRecord.Builder
ו-AudioTrack.Builder
ליצירת אובייקטים של הקלטה דיגיטלית של אודיו ותצוגה שלו, בהתאמה, ולהגדרת מאפייני מקור אודיו ומאגר אודיו כדי לשנות את הגדרות ברירת המחדל של המערכת. - ווקים של API לשיוך של אודיו ומכשירי קלט. האפשרות הזו שימושית במיוחד אם האפליקציה מאפשרת למשתמשים להתחיל חיפוש קולי באמצעות בקר משחקים או שלט רחוק שמחובר ל-Android TV. המערכת מפעילה את הפונקציה החדשה להפעלה חוזרת (callback)
onSearchRequested()
כשהמשתמש מתחיל חיפוש. כדי לקבוע אם למכשיר הקלט של המשתמש יש מיקרופון מובנה, מאחזרים את האובייקטInputDevice
מהקריאה החוזרת (callback) הזו, ואז קוראים ל-method החדשhasMicrophone()
. - שיטת
getDevices()
חדשה שמאפשרת לאחזר רשימה של כל מכשירי האודיו שמחוברים כרגע למערכת. אפשר גם לרשום אובייקטAudioDeviceCallback
אם רוצים שהמערכת תודיע לאפליקציה כשמכשיר אודיו מתחבר או מתנתק.
תכונות שקשורות לסרטונים
הגרסה הזו כוללת יכולות חדשות לממשקי ה-API לעיבוד וידאו, כולל:
- הכיתה החדשה
MediaSync
עוזרת לאפליקציות ליצור רינדור לסטרימינג של אודיו ווידאו באופן סינכרוני. מאגרי הנתונים הזמניים של האודיו נשלחים ללא חסימה ומוחזרים בקריאה חוזרת (callback). יש בה גם תמיכה בקצב השמעה דינמי. - אירוע
EVENT_SESSION_RECLAIMED
חדש, שמציין שסשן שנפתח על ידי האפליקציה אוחזר על ידי מנהל המשאבים. אם האפליקציה שלכם משתמשת בסשנים של DRM, עליכם לטפל באירוע הזה ולוודא שאתם לא משתמשים בסשן ששוחזר. - קוד השגיאה
ERROR_RECLAIMED
החדש, שמציין שמנהל המשאבים ביטל את הבעלות על משאב המדיה שמשמש את הקודק. למעט במקרה הזה, צריך לשחרר את הקודק כי הוא עבר למצב טרמינל. - ממשק
getMaxSupportedInstances()
חדש שמאפשר לקבל רמז לגבי המספר המקסימלי של מכונות הקודק הנתמכות בו-זמנית. - שיטה חדשה
setPlaybackParams()
להגדרת קצב ההפעלה של המדיה להפעלה במהירות מהירה או איטית. הוא גם נמתח או האצה את הפעלת האודיו באופן אוטומטי בצירוף הסרטון.
תכונות המצלמה
הגרסה הזו כוללת את ממשקי ה-API החדשים הבאים לגישה לזרקור של המצלמה ולעיבוד מחדש של תמונות במצלמה:
ממשק API של Flashlight
אם למכשיר המצלמה יש יחידת פלאש, אפשר להפעיל או לכבות את מצב הפנס של יחידת הפלאש באמצעות השיטה setTorchMode()
בלי לפתוח את מכשיר המצלמה. לאפליקציה אין בעלות בלעדית על יחידת הפלאש או על מצלמת המכשיר. מצב הפנס נכבה ולא זמין כשמצלמת המכשיר לא זמינה, או כשמשאבים אחרים של המצלמה ששומרים על הפנס כבוי לא זמינים. אפליקציות אחרות יכולות גם לקרוא ל-setTorchMode()
כדי לכבות את מצב הלפיד. כשסוגרים את האפליקציה האחרונה שהפעילה את מצב הפנס, מצב הפנס מושבת.
כדי לקבל התראות על סטטוס מצב הפנס, אפשר לרשום קריאה חוזרת (callback) על ידי קריאה לשיטה registerTorchCallback()
. בפעם הראשונה שהקריאה החוזרת נרשמת, היא מופעלת מיד בסטטוס של מצב לפיד של כל מכשירי המצלמה הידועים שיש להם יחידת הפלאש. אם מצב הפנס מופעל או מושבת בהצלחה, מתבצעת הפעלה של השיטה onTorchModeChanged()
.
Reprocessing API
ה-API של Camera2
הורחב כדי לתמוך בעיבוד מחדש של תמונות בפורמט YUV ובפורמטים פרטיים אטומים. כדי לבדוק אם היכולות האלה לעיבוד חוזר זמינות, צריך להפעיל את הפונקציה getCameraCharacteristics()
ולבדוק אם המפתח REPROCESS_MAX_CAPTURE_STALL
קיים. אם המכשיר תומך בעיבוד חוזר, אפשר ליצור סשן צילום במצלמה שניתן לעבד מחדש על ידי קריאה ל-createReprocessableCaptureSession()
, וליצור בקשות לעיבוד חוזר של מאגר הקלט.
משתמשים בכיתה ImageWriter
כדי לחבר את תהליך האחסון במטמון של הקלט לכניסה לעיבוד חוזר של המצלמה. כדי ליצור מאגר נתונים זמני ריק, צריך להשתמש במודל התכנות הבא:
- קוראים ל-method
dequeueInputImage()
. - מילוי הנתונים במאגר הקלט.
- שולחים את המאגר למצלמה באמצעות קריאה ל-method
queueInputImage()
.
אם משתמשים באובייקט ImageWriter
יחד עם תמונה PRIVATE
, לאפליקציה אין גישה ישירה לנתוני התמונה. במקום זאת, מעבירים את קובץ האימג' PRIVATE
ישירות ל-ImageWriter
באמצעות קריאה ל-method queueInputImage()
, בלי עותק של מאגר נתונים זמני.
במחלקה ImageReader
יש עכשיו תמיכה בסטרימינג של תמונות בפורמט PRIVATE
. התמיכה הזו מאפשרת לאפליקציה לשמור תור תמונות מעגלי של ImageReader
תמונות פלט, לבחור תמונה אחת או יותר ולשלוח אותן ל-ImageWriter
לעיבוד חוזר במצלמה.
התכונות של Android for Work
הגרסה הזו כוללת את ממשקי ה-API החדשים הבאים ל-Android for Work:
- אמצעי בקרה משופרים למכשירים לשימוש יחיד בבעלות החברה: הבעלים של המכשיר יכולים עכשיו לשלוט בהגדרות הבאות כדי לשפר את הניהול של מכשירים לשימוש יחיד בבעלות החברה (COSU):
- משביתים או מפעילים מחדש את מסך הנעילה באמצעות השיטה
setKeyguardDisabled()
. - משביתים או מפעילים מחדש את שורת הסטטוס (כולל ההגדרות המהירות, ההתראות והתנועה של החלקה למעלה לניווט שמפעילה את Google Now) באמצעות השיטה
setStatusBarDisabled()
. - משביתים או מפעילים מחדש את האתחול הבטוח באמצעות הקבוע
UserManager
DISALLOW_SAFE_BOOT
. - כדי למנוע מהמסך לכבות כשהכבל מחובר, משתמשים בערך הקבוע
STAY_ON_WHILE_PLUGGED_IN
.
- משביתים או מפעילים מחדש את מסך הנעילה באמצעות השיטה
- התקנה והסרה שקטה של אפליקציות על ידי בעלי המכשיר: בעלי המכשיר יכולים עכשיו להתקין ולהסיר אפליקציות בשקט באמצעות ממשקי ה-API של
PackageInstaller
, ללא קשר ל-Google Play for Work. עכשיו אפשר להקצות מכשירים דרך הבעלים של המכשיר, שמאחזר ומתקין אפליקציות ללא אינטראקציה מצד המשתמש. התכונה הזו שימושית להקצאה בנגיעה אחת של קיוסקים או מכשירים דומים אחרים, בלי להפעיל חשבון Google. - גישה שקטה לאישורי הארגון: כשאפליקציה שולחת קריאה ל-
choosePrivateKeyAlias()
, לפני שהמשתמש מתבקש לבחור אישור, בעלי הפרופיל או המכשיר יכולים עכשיו לקרוא לשיטהonChoosePrivateKeyAlias()
כדי לספק את הכינוי בלי להציג הודעה לאפליקציה ששולחת את הבקשה. התכונה הזו מאפשרת להעניק לאפליקציות מנוהלות גישה לאישורים ללא התערבות המשתמש. - אישור אוטומטי של עדכוני מערכת. הגדרת מדיניות לעדכון מערכת באמצעות
setSystemUpdatePolicy()
מאפשרת לבעלי המכשיר לאשר באופן אוטומטי עדכון מערכת, למשל במקרה של מכשיר קיוסק, או לדחות את העדכון ולמנוע מהמשתמש לבצע אותו למשך עד 30 יום. בנוסף, אדמינים יכולים להגדיר חלון זמן יומי שבו צריך לבצע עדכון, למשל, במהלך השעות שבהן לא נעשה שימוש במכשיר קיוסק. כשיש עדכון מערכת זמין, המערכת בודקת אם אפליקציית הבקרה של מדיניות המכשיר הגדרה מדיניות עדכון מערכת, ומגיבת בהתאם. -
התקנת אישורים באמצעות הענקת גישה: מעכשיו, בעלי פרופיל או מכשיר יכולים להעניק לאפליקציה של צד שלישי את היכולת לבצע קריאה לממשקי ה-API האלה לניהול אישורים
DevicePolicyManager
: - מעקב אחרי השימוש בנתונים. בעלי פרופיל או מכשיר יכולים להשתמש בשיטות החדשות של
NetworkStatsManager
כדי לשלוח שאילתות לגבי הנתונים הסטטיסטיים של שימוש בנתונים שמוצגים בקטע הגדרות > נתונים. לבעלי הפרופילים ניתנת באופן אוטומטי הרשאה להריץ שאילתות על הנתונים בפרופיל שהם מנהלים, ואילו לבעלי המכשירים ניתנת גישה לנתוני השימוש של המשתמש הראשי המנוהל. - ניהול הרשאות בזמן ריצה:
בעלי הפרופיל או בעלי המכשיר יכולים להגדיר מדיניות הרשאות לכל הבקשות של זמן הריצה של כל האפליקציות שמשתמשות ב-
setPermissionPolicy()
, כדי לבקש מהמשתמש להעניק את ההרשאה או כדי להעניק או לדחות אותה באופן אוטומטי. אם המדיניות השנייה מוגדרת, המשתמש לא יכול לשנות את הבחירה של הבעלים של הפרופיל או המכשיר במסך ההרשאות של האפליקציה בקטע הגדרות. - VPN בהגדרות: אפליקציות VPN מוצגות עכשיו בקטע הגדרות > עוד > VPN. בנוסף, ההתראות שמתלוות לשימוש ב-VPN מותאמות באופן ספציפי לאופן שבו ה-VPN מוגדר. לבעלי הפרופיל, ההתראות ספציפיות לפרופיל המנוהל, לפרופיל האישי או לשניהם. לבעלי המכשיר, ההתראות ספציפיות לכך שה-VPN מוגדר לכל המכשיר.
- התראה על סטטוס עבודה: סמל של תיק מופיע עכשיו בשורת הסטטוס בכל פעם שאפליקציה מהפרופיל המנוהל פועלת בחזית. בנוסף, אם המכשיר נפתח ישירות לפעילות של אפליקציה בפרופיל המנוהל, תוצג הודעה למשתמש על כך שהוא נמצא בפרופיל העבודה.