משימות ניהול אופייניות

ספקי EMM יכולים ליישם מגוון משימות ניהול אופייניות בפתרונות הארגוניות שלהם ל-Android, כמו המשימות המוצגות במדריך הזה. הקוד לדוגמה משתמש בספריית הלקוח של ממשק ה-API של Google Play EMM ל-Java®.

חיפוש משתמשים וקבלת פרטי משתמשים

ברוב ממשקי ה-API של שירותי EMM של Google Play נדרש userId (בנוסף ל-enterpriseId) כדי לבצע משימות מסוימות שמשויכות למשתמש, כמו התקנת אפליקציה, קבלת הרשאות ורישוי. בקריאות מסוימות נדרש אובייקט משתמש.

אם ארגון משתמש בחשבונות Google Play מנוהלים, צריך לשמור על מיפוי בין כתובות האימייל של המשתמשים לבין מזהי המשתמשים של אותם חשבונות. עם חשבונות Google, ניתן להשתמש ב-UsersListResponse.

חיפוש משתמשים

דוגמת הקוד הזו מאחזרת מזהי משתמשים המשויכים לחשבונות Google. היא לא חלה על ארגונים שמשתמשים בחשבונות Google Play מנוהלים.

הדוגמה הזו מבוססת על ההנחה שייבאת את המודלים User ו-UsersListResponse אל הקוד שלך. כדי לקבל חשבון משתמש ספציפי, עליך להעביר את enterpriseId ואת האימייל אל UsersListResponse כדי לקבל את הuserId שלו.

public UsersListResponse list(String enterpriseId, String email) throws
   IOException {
    return androidEnterprise
        .users()
        .list(enterpriseId, email)
        .execute();
}

אחזור של פרטי משתמשים

אחרי שמוצאים את userId, אפשר לאחזר פרטים אחרים. צפייה Users.Get

public User get(String enterpriseId, String userId) throws IOException {
    return androidEnterprise
        .users()
        .get(enterpriseId, userId)
        .execute();
}

איך מעניקים גישה לאפליקציות

יש לך אפשרות להשתמש בממשקי ה-API של Google Play EMM כדי לקבוע לאילו אפליקציות תהיה למשתמש גישה מחנות Google Play לארגונים. גישה לאפליקציה כוללת את היכולת לחפש, להציג, להתקין ולעדכן אותו. יש שלוש רמות גישה שונות הרמות הזמינות:

  • אפליקציות מורשות בלבד: למשתמש יש גישה רק לאפליקציות מסוימות.
  • כל האפליקציות שאושרו: למשתמש יש גישה לכל האפליקציות שאושרו עבור בארגון.
  • כל האפליקציות: למשתמש יש גישה לכל האפליקציות שזמינות באופן ציבורי בחנות Google Play.

איך נותנים למשתמשים גישה רק לאפליקציות מסוימות

הדוגמה הבאה מראה איך להעניק למשתמש גישה לקבוצה ספציפית של אפליקציות מחנות Google Play לארגונים. התהליך כולל את את השלבים הבאים:

  • לאסוף רשימה של productIds (אפליקציות) שאושרו עבור המשתמש (productSet).
  • כדי לציין שהמשתמש יכול לגשת רק לאפליקציות שמופיעות ברשימה הנתונה, צריך להגדיר את הערך של המחרוזת productSetBehavior ל-"whitelist".
  • מחילים את הרשימה של productIds ואת הגדרת ההתנהגות על קבוצת המוצרים הזמינה של המשתמש באמצעות setAvailableProductSet.
public ProductSet setProductSet(String enterpriseId, String userId,
    List<String> productIds) throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductId(productIds);
  productSet.setProductSetBehavior("whitelist");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

איך נותנים למשתמש גישה לכל האפליקציות שאושרו

הדוגמה הבאה מראה איך להעניק למשתמש גישה לכל אפליקציה שאושרה עבור הארגון מחנות Google Play לארגונים. התהליך כולל את את השלבים הבאים:

  • כדי לציין שלמשתמש תהיה גישה לכל האפליקציות שאושרו לארגון, צריך להגדיר את הערך של המחרוזת productSetBehavior ל-"allApproved".
  • צריך להחיל את ההגדרה הזו על המשתמש באמצעות setAvailableProductSet.
public ProductSet setUserIncludeApprovedApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("allApproved");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

הערה: כשהערך בשדה productSetBehavior הוא "allApproved", אין צורך לציין productIds עבור productSet.

איך נותנים למשתמש גישה לכל האפליקציות

הדוגמה הבאה מראה איך להעניק למשתמש את היכולת בחשבון Google המנוהל לחנות Play יש גישה לכל אפליקציה שזמינה בחנות Google Play הציבורית. משתמשים עם גישה לכל האפליקציות עדיין יכולים לראות רק את פריסת החנות של בארגון, כשהם פותחים את Google Play לארגונים, אבל יכולים למצוא אפליקציות נוספות באמצעות חיפוש.

משתמשים מהימנים מסוימים, כגון מנהלי IT, עשויים לדרוש רמה גבוהה יותר של גישה לצורך בדיקה והערכה של אפליקציות לפני אישור שלהן לארגון. התהליך של הענקת גישה לכל האפליקציות כולל את השלבים הבאים:

  • כדי לציין שהמשתמש יוכל לגשת לכל האפליקציות בחנות Google Play, צריך להגדיר את הערך של המחרוזת productSetBehavior כ-"includeAll".
  • צריך להחיל את ההגדרה הזו על המשתמש באמצעות setAvailableProductSet.
public ProductSet setUserIncludeAllApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("includeAll");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

הערה: כשהערך בשדה productSetBehavior הוא "includeAll", אין צורך לציין productIds עבור productSet.

יצירת פריסת חנות

אחרי שמעניקים למשתמשים גישה לאפליקציות, אפשר לקבץ את האפליקציות באשכולות להצגה בחנות Google Play לארגונים.

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

קבלת הרשאות הניתנות לאפליקציה

כדי להוסיף אפליקציה לפריסת חנות מותאמת אישית (או להתקין באופן שקט אפליקציה מכשיר) ולהציג את האפליקציה כדי שהמשתמש יוכל לבחור אותה, האדמין צריך לקבל הרשאות לאפליקציה הזו לכל הארגון. אדמינים יכולים קבלת הרשאות הניתנות לאפליקציה וסימון אפליקציות כמאושרות להפצה בחשבון המנוהל Google Play Console (אפשר לעיין בסקירה הכללית על Google Play לארגונים).

מומלץ להטמיע את ההרשאות iframe מסוף EMM. המשמעות היא שהמשתמש לא צריך לנווט בנפרד מסוף Google Play לארגונים. משתמשים ב-Products.getApprovalUrl כדי לקבל את כתובת ה-URL של ה-iframe.

public String getApprovalUrl(String enterpriseId, String productId)
    throws IOException {
  return androidEnterprise
      .products()
      .generateApprovalUrl(enterpriseId, productId)
      .execute()
      .getUrl();
}

יש להשתמש בכתובת Products.approve כדי לקבל את ההרשאות האלה.

public void approveProduct(String enterpriseId,
    String productId,
    String approvalUrl) throws IOException {
  ProductsApproveRequest productsApproveRequest =
      new ProductsApproveRequest()
          .setApprovalUrlInfo(
              new ApprovalUrlInfo().setApprovalUrl(approvalUrl));
  androidEnterprise
      .products()
      .approve(enterpriseId, productId, productsApproveRequest)
      .execute();
  }

אחזור מכשירים של משתמש

כדי לבצע פעולות ספציפיות למכשיר, עליך לזהות את המכשירים שמשויכים משתמש. בדוגמה הזו מוצגת רשימת המכשירים של userID נתון באמצעות DevicesListResponse.

public DevicesListResponse list(String enterpriseId, String userId) throws
   IOException {

    return androidEnterprise
        .devices()
        .list(enterpriseId, userId)
        .execute();
}

אם המשתמש הסכים לתנאים ולהגבלות שהוצגו כשניסה לגשת ב-Google Play לארגונים בפעם הראשונה, התגובה כוללת מכשירים לא מנוהלים (מכשירים מסוג הניהול unmanagedProfile).

אחזור והגדרת מצב של מכשיר

משימת הניהול הזו חלה רק על ארגונים שמשתמשים בחשבונות Google. הוא לא רלוונטי לארגונים שמשתמשים בחשבונות Google Play מנוהלים.

כשחשבון Google המנוהל של המשתמש מופעל במכשיר מנוהל, יש גישה לשירותי Google מופעל (או מושבת) על סמך:

אם האכיפה של EMM מושבתת, המערכת מתעלמת ממצב המכשיר והחשבון מופעל מוענקת גישה לשירותי Google בכל פעם שהם מופעלים במכשיר Android. אם אכיפת ה-EMM מופעלת אבל מצב המכשיר לא מופעל, המשתמשים לא יכולים להתקין אפליקציות מ-Google Play וממשקי API של Google Play EMM לא יכולים להתקין באופן שקט האפליקציות של המשתמש הזה במכשיר.

בדוגמה הזו רואים איך לקבל את המצב של מכשיר נתון (מצוין על ידי העברת enterpriseId, userId ו-deviceId).

getState() ו-setState() פועלות במכשירים עם managementType managedDevice או managedProfile (במשאב Devices) בלבד. מכשירים עם לא ניתן לשלוט ב-managementType של unmanagedProfile באמצעות ממשקי ה-API האלה.

public DeviceState getState(String enterpriseId, String userId, String
   deviceId) throws IOException {

    return androidEnterprise
        .devices()
        .getState(enterpriseId, userId, deviceId)
        .execute();
}

הפעלה או השבתה של שירותי Google עבור החשבון במכשיר על ידי הגדרה של מחרוזת AccountState לפי הקבוע המתאים.

public DeviceState setState(String enterpriseId, String userId, String
   deviceId, String accountState) throws IOException {

    DeviceState deviceState = new DeviceState();
    deviceState.setAccountState(accountState);

    return androidEnterprise
        .devices()
        .setState(enterpriseId, userId, deviceId, deviceState)
        .execute();
}

התקנת אפליקציה במכשיר בדחיפה

אדמינים יכולים להתקין אפליקציות באופן שקט. אין צורך לבצע אינטראקציה עם המשתמש. בדוגמה הזו נעשה שימוש ב-Installs.Update כדי להתקין אפליקציה באופן שקט (זוהתה על ידי productId) למכשיר (שזוהה באמצעות deviceId).

public Install update(String enterpriseId, String userId, String
   deviceId, String productId) throws IOException {

    return androidEnterprise
        .installs()
        .update(enterpriseId, userId, deviceId, productId,
           new Install())
        .execute();
}

אם האפליקציה כבר קיימת במכשיר ויש גרסה מעודכנת, האפליקציה תעודכן לגרסה החדשה.

חיפוש אפליקציות מרשימת האפליקציות שאושרו והורדה שלהן

אדמינים יוצרים ומנהלים רשימה של אפליקציות מאושרות שזמינות למשתמשים שלהם ב-Google Play לארגונים. משתמשים במכשירי BYOD עם פרופילים של עבודה ומשתמשים במכשירים ארגוניים שבהם כל המכשיר מנוהל על ידי הארגון יכולים להוריד אפליקציות רק מהרשימה המאושרת הזו.

יש לך אפשרות להתאים אישית את מסוף ה-EMM כך שיכלול תיבת חיפוש, כדי שאדמינים יוכלו לחפש אפליקציות רק מרשימת האפליקציות המאושרות. פונקציית החיפוש מקבלת את אותם פרמטרים כמו בפונקציית חיפוש מנוהלת רגילה ב-Google Play, אבל היא מחפשת רק אפליקציות מרשימת האפליקציות המאושרות.

לדוגמה, אם האדמין רוצה להתקין אפליקציה מרשימת האפליקציות המאושרות למכשירים בארגון, הוא יכול להשתמש בפונקציית החיפוש הזו במסוף ה-EMM כדי למצוא את האפליקציה.

אתם יכולים לציין בשאילתה את המספר המקסימלי של מוצרים שהתוצאה צריכה להכיל, למשל setMaxResults(10L), מספיק כדי למלא את המסך. ערך ברירת המחדל הוא 100, שהוא גם הערך המקסימלי שאפשר להחזיר בבת אחת. כשהתוצאה מכילה אסימון חלוקה לדפים, יש תוצאות נוספות שאפשר לאחזר על ידי העברת אסימון העימוד.

בדוגמה הזו רואים איך לקבל את 10 התוצאות הראשונות של חיפוש אפליקציות פרודוקטיביות. Products.List.

public List searchProducts(String enterpriseId) throws IOException {
  ProductsListResponse executeResult =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setQuery("productivity")
          .execute();
  return executeResult.getProduct();
}

אם תוצאת החיפוש מכילה אסימון חלוקה לדפים, הניב החיפוש יותר מ-setMaxResults תוצאות, או יותר מ-10 בדוגמה הזו. כדי לאחזר תוצאות נוספות, צריך לבצע מחדש את החיפוש ולכלול את אסימון העימוד בבקשה. בדוגמה הזו מתקבלות 10 התוצאות הבאות.

public ProductsListResponse continueSearch(
    String enterpriseId, ProductsListResponse previousResponse) throws IOException {
  ProductsListResponse nextResults =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setToken(previousResponse.getTokenPagination().getNextPageToken())
          .setQuery("productivity")
          .execute();
  return nextResults;
}