وظایف مدیریت معمولی

EMM ها می توانند طیف وسیعی از وظایف مدیریتی معمولی را در راه حل های سازمانی خود برای Android پیاده کنند، مانند وظایف نشان داده شده در این راهنما. کد نمونه از Google Play EMM API Client Library برای Java ® استفاده می کند.

کاربران را جستجو کنید و جزئیات کاربر را دریافت کنید

بسیاری از APIهای Google Play EMM برای انجام برخی از کارهای مرتبط با کاربر، مانند نصب برنامه، دریافت حقوق و مجوز، به userId (علاوه بر enterpriseId ) نیاز دارند. برخی از تماس ها به یک شی کاربر نیاز دارند.

اگر سازمانی از حساب‌های مدیریت‌شده Google Play استفاده می‌کند، شما نقشه‌ای را بین آدرس‌های ایمیل کاربر و شناسه‌های کاربری برای آن حساب‌ها انجام می‌دهید. با حساب‌های Google، از UsersListResponse استفاده می‌کنید.

کاربران را جستجو کنید

این نمونه کد شناسه‌های کاربری مرتبط با حساب‌های Google را دریافت می‌کند. برای سازمان‌هایی که از حساب‌های مدیریت‌شده Google Play استفاده می‌کنند، اعمال نمی‌شود.

این مثال فرض می کند که شما مدل های User و UsersListResponse را به کد خود وارد کرده اید. برای دریافت یک حساب کاربری خاص، userId آن را با ارسال enterpriseId و ایمیل به UsersListResponse دریافت کنید.

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 مدیریت شده را باز می‌کنند، طرح‌بندی فروشگاه را برای شرکت خود می‌بینند، اما می‌توانند برنامه‌های اضافی را از طریق جستجو پیدا کنند.

برخی از کاربران معتمد، مانند سرپرستان فناوری اطلاعات، ممکن است به این سطح دسترسی بیشتر برای آزمایش و ارزیابی برنامه‌ها قبل از تأیید آن‌ها برای شرکت نیاز داشته باشند. فرآیند اعطای دسترسی کاربر به همه برنامه ها شامل مراحل زیر است:

  • مشخص کنید که کاربر می تواند با تنظیم مقدار رشته productSetBehavior روی "includeAll" به همه برنامه های موجود در فروشگاه Google Play دسترسی داشته باشد.
  • این تنظیم را با استفاده از 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 علامت‌گذاری کنند (به نمای کلی Google Play مدیریت شده مراجعه کنید).

به عنوان بهترین روش، توصیه می‌کنیم iframe مجوزها را در کنسول EMM خود جاسازی کنید. این بدان معناست که کاربر مجبور نیست به طور جداگانه به کنسول مدیریت شده Google Play پیمایش کند. برای دریافت URL iframe از Products.getApprovalUrl استفاده کنید.

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();
  }

دستگاه های یک کاربر را دریافت کنید

برای انجام اقدامات خاص دستگاه، باید دستگاه های مرتبط با یک کاربر را شناسایی کنید. این مثال با استفاده از DevicesListResponse فهرست دستگاه‌ها را برای یک userID معین برمی‌گرداند.

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 غیرفعال باشد، وضعیت دستگاه نادیده گرفته می‌شود و هر زمان که حساب در دستگاه Android فعال شود به خدمات Google دسترسی پیدا می‌کند. اگر اجرای EMM فعال باشد اما وضعیت دستگاه فعال نباشد، کاربران نمی‌توانند برنامه‌ها را از Google Play نصب کنند، و APIهای EMM Google Play نمی‌توانند برنامه‌ها را برای آن کاربر در بی‌صدا روی دستگاه نصب کنند.

این مثال نشان می‌دهد که چگونه می‌توان وضعیت یک دستگاه معین را به دست آورد (که با پاس دادن enterpriseId ، userId و deviceId مشخص شده است).

عملیات getState() و setState() فقط برای دستگاه هایی با یک managementType of 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();
}

با تنظیم رشته AccountState روی ثابت مناسب، خدمات Google را برای حساب در یک دستگاه فعال یا غیرفعال کنید.

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