مهام الإدارة المعتادة

يمكن لمزوّدي إدارة الخدمات الجوّالة للمؤسسات (EMM) تنفيذ مجموعة من مهام الإدارة النموذجية في حلول المؤسسات لنظام Android، مثل المهام الموضّحة في هذا الدليل. يستخدم الرمز النموذجي مكتبة برامج Google Play EMM API للغة Java®.

البحث عن المستخدمين والحصول على تفاصيل المستخدم

تتطلّب العديد من واجهات برمجة التطبيقات لإدارة الخدمات الجوّالة للمؤسسات (EMM) في Google Play توفّر 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();
}

منح مستخدم إذن الوصول إلى التطبيقات

يمكنك استخدام واجهات برمجة التطبيقات Google Play EMM API للتحكّم في التطبيقات التي يمكن للمستخدم الوصول إليها. من متجر 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 للأعمال"، ولكن يمكنهم العثور على تطبيقات إضافية من خلال البحث.

وقد يطلب بعض المستخدمين الموثوق بهم، مثل مشرفي تكنولوجيا المعلومات، هذا المستوى الأعلى من إمكانية اختبار التطبيقات وتقييمها قبل الموافقة عليها للمؤسسات. تشير رسالة الأشكال البيانية تتضمن عملية منح المستخدم إذن الوصول إلى جميع التطبيقات الخطوات التالية:

  • يمكنك تحديد أنه يمكن للمستخدم الوصول إلى جميع التطبيقات في "متجر 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 للأعمال".

يمكنك إنشاء تصميم متجر مخصّص وفريد لكل عميل من عملائك باستخدام واجهتَي برمجة تطبيقات 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 وواجهات برمجة تطبيقات إدارة الخدمات الجوّالة للمؤسسات (EMM) في Google Play تلقائيًا. التطبيقات لهذا المستخدم على الجهاز.

يوضح هذا المثال كيفية الحصول على حالة جهاز معين (يتم تحديده من خلال اجتياز enterpriseId وuserId وdeviceId).

getState() وتعمل عمليات setState() للأجهزة التي تتضمّن managementType managedDevice أو managedProfile (على المرجع Devices) فقط. الأجهزة المزوّدة لا يمكن التحكّم في managementType لـ unmanagedProfile باستخدام واجهات برمجة التطبيقات هذه.

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 للأعمال". يمكن لمستخدمي أجهزة "جلب الجهاز الشخصي" التي تحتوي على ملفات شخصية للعمل والمستخدمين على الأجهزة الخاضعة للمسؤولية حيث تتم إدارة الجهاز بالكامل من قِبل المؤسسة تنزيل التطبيقات فقط من هذه القائمة التي تمت الموافقة عليها.

يمكنك تخصيص وحدة تحكُّم EMM بحيث تتضمّن مربّع بحث كي يتمكّن المشرفون من البحث عن التطبيقات المُدرَجة في قائمة التطبيقات التي تمت الموافقة عليها فقط. تقبل وظيفة البحث المعلَمات نفسها التي تقبلها وظيفة البحث العادية في "Google Play للأعمال"، ولكنها تبحث فقط عن التطبيقات في قائمة التطبيقات المعتمَدة.

على سبيل المثال، إذا أراد المشرف إرسال تثبيت تطبيق من قائمة التطبيقات التي تمت الموافقة عليها إلى الأجهزة في المؤسسة، يمكنه استخدام وظيفة البحث هذه في وحدة تحكّم "إدارة الخدمات الجوّالة للمؤسسات" للعثور على التطبيق.

في طلب البحث، يمكنك تحديد حدّ أقصى لعدد المنتجات التي يجب أن تحتوي عليها النتيجة، مثل 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 نتائج في هذا المثال. لاسترداد المزيد من النتائج، يجب إعادة البحث وتضمين الرمز المميّز للتقسيم على صفحات في الطلب. يحصل هذا المثال على النتائج العشر التالية.

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