برنامه ها را توزیع کنید

Google Play EMM API از روش‌های توزیع زیر برای برنامه‌های عمومی و خصوصی پشتیبانی می‌کند:

به صورت دستی برنامه ها را از فروشگاه مدیریت شده Google Play نصب کنید

می‌توانید برنامه‌هایی را برای نصب در policy Device تعریف کنید و با تماس با Devices.update آن را تنظیم کنید. هنگام تهیه یک دستگاه جدید، باید قبل از افزودن حساب مدیریت شده Google Play به دستگاه، خط‌مشی را تنظیم کنید، در غیر این صورت این خط‌مشی برای مدت کوتاهی پس از افزودن حساب به دستگاه اعمال نخواهد شد.

رفتار فروشگاه Play مدیریت شده با مقدار policy.productAvailabilityPolicy تعریف می شود:

  • all : همه برنامه‌های عمومی از Play Store در دسترس هستند.
  • whitelist : فقط برنامه های فهرست شده در policy.productPolicy در دسترس هستند.

در هر دو مورد، همه برنامه‌های موجود در policy.productPolicy به‌طور پیش‌فرض به طرح‌بندی فروشگاه شرکت اضافه می‌شوند. طرح‌بندی فروشگاه شرکت، صفحه اصلی فروشگاه Play مدیریت‌شده در صورت انتخاب whitelist است، و وقتی all انتخاب شده است، می‌توان در برگه «برنامه‌های کاری» به آن دسترسی داشت. می‌توانید با جاسازی iframe مدیریت‌شده Google Play به مشتری خود اجازه دهید طرح‌بندی فروشگاه شرکت را سفارشی کند (به سازمان‌دهی برنامه‌ها با iframe مدیریت‌شده Google Play مراجعه کنید).

برنامه ها را از راه دور بر روی دستگاه های کاربر نصب کنید

برای نصب از راه دور (که نصب فشاری نیز نامیده می شود) یک برنامه در دستگاه کاربر، policy.productPolicy.autoInstallPolicy را در policy Device تنظیم کنید. هنگام تهیه یک دستگاه جدید، باید قبل از افزودن حساب مدیریت شده Google Play به دستگاه، خط‌مشی را تنظیم کنید، در غیر این صورت این خط‌مشی برای مدت کوتاهی پس از افزودن حساب به دستگاه اعمال نخواهد شد.

autoInstallMode را می توان روی موارد زیر تنظیم کرد:

  • doNotAutoInstall : برنامه به طور خودکار نصب نمی شود.
  • autoInstallOnce : برنامه یک بار به طور خودکار نصب می شود، اگر کاربر برنامه را حذف نصب کند، دیگر نصب نمی شود.
  • forceAutoInstall : برنامه به طور خودکار نصب می شود، اگر کاربر برنامه را حذف نصب کند، دوباره نصب می شود. در دستگاه های مدیریت شده، DPC باید حذف نصب را با استفاده از DevicePolicyManager.setUninstallBlocked مسدود کند.

در صورت خرابی (از دست دادن اتصال، کمبود فضای ذخیره‌سازی و غیره)، نصب‌ها تا زمانی که موفق شوند به‌طور خودکار تکرار می‌شوند. برای جلوگیری از هدر رفتن باتری و داده ها در صورت خرابی های غیرقابل جبران، یک استراتژی تکرار نمایی نمایی اعمال می شود.

اولویت را نصب کنید

می‌توانید ترتیب نصب‌ها را با تنظیم autoInstallPriority انتخاب کنید. اولویت باید یک عدد صحیح بدون علامت باشد و مقدار پیش‌فرض آن 0 باشد. برنامه‌ها به ترتیب یا اولویت نصب می‌شوند، به این معنی که ابتدا برنامه‌هایی با مقدار اولویت پایین‌تر نصب می‌شوند.

محدودیت ها را نصب کنید

می‌توانید با تنظیم autoInstallConstraint محدودیت‌های نصب را برای هر برنامه تنظیم کنید، که به شما امکان می‌دهد وضعیت مورد نیاز دستگاه را در حین نصب کنترل کنید:

  • آیا دستگاه باید به یک شبکه Wi-Fi متصل شود،
  • آیا دستگاه باید شارژ شود،
  • و اینکه آیا دستگاه باید بیکار باشد (به طور فعال توسط کاربر استفاده نمی شود).

اگر محدودیت ها فورا برآورده نشوند، نصب های تحت تأثیر تا زمانی که محدودیت ها برآورده شوند در صف قرار می گیرند.

در autoInstallConstraint قانون AND بین فیلدها اعمال می شود. برای مثال، با autoInstallConstraint زیر، دستگاه باید هم در حال شارژ باشد و هم به یک شبکه بدون اندازه (مثلاً Wi-Fi) متصل باشد تا برنامه نصب شود:

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

نصب خودکار برنامه ها در دستگاه هایی که به تازگی ارائه شده است

Google Play EMM API یک اعلان NewDeviceEvent هنگامی که دستگاهی برای اولین بار تهیه می شود ارسال می کند. برای نصب خودکار برنامه‌ها در دستگاه‌هایی که به تازگی ارائه شده‌اند، به اعلان‌های NewDeviceEvent گوش دهید. از هر NewDeviceEvent ، userId و deviceId را بازیابی کنید و سپس Devices.update برای تنظیم خط مشی آن دستگاه فراخوانی کنید.

برای آشنایی با نحوه اشتراک در اعلان‌های EMM، به تنظیم اعلان‌های EMM مراجعه کنید.

بازخورد خطای نصب خودکار برنامه

خطاهای مربوط به نصب برنامه از طریق App Feedback گزارش می شود و DPC می تواند پیام EnterprisePolicyStatus ارسال شده از طریق KeyedAppStatesService را نظارت کند.

برای رمزگشایی داده های کدگذاری شده Base64، DPC باید کلاس هایی را بر اساس تعریف اولیه EnterprisePolicyStatus ایجاد کند. برای دستورالعمل‌های مربوط به تولید کلاس‌های پروتوکل، به مستندات بافرهای پروتکل مراجعه کنید.

با کلاس های تولید شده، DPC می تواند شی EnterprisePolicyStatus را رمزگشایی کند:

EnterprisePolicyStatus enterprisePolicyStatus = EnterprisePolicyStatus.parseFrom(
    BaseEncoding.base64().decode(base64EncodedString)
);

سیاست دستگاه اکنون شامل فیلد اختیاری جدید PolicyId است. هنگام ایجاد یا به‌روزرسانی یک خط‌مشی، EMM می‌تواند PolicyId را روی هر مقدار رشته تنظیم کند تا یک نسخه خط‌مشی دستگاه خاص را شناسایی کند.

در صورت وجود، بازخورد نصب برنامه، PolicyId را گزارش می‌دهد تا DPC بتواند خطاهای دریافتی را با خط‌مشی‌های خاص مطابقت دهد.

EnterprisePolicyStatus

message EnterprisePolicyStatus {
  // Individual status for an app in the policy
  repeated ApplicationStatus app_status = 1;

  // Version of the policy for which this status applies.
  PolicyVersion version = 2;
}

وضعیت برنامه

// Individual status for an app.
message ApplicationStatus {
  // The package name for the app.
  string package_name = 1;

  // The install status for the app. Only includes status for apps scheduled
  // to be auto-installed via the policy resource.
  AutoInstallStatus install_status = 2;
}

وضعیت نصب خودکار

// Auto-install status for an app.
message AutoInstallStatus {
  // The error causing the install to fail if state is INSTALL_ERROR.
  EnterpriseAutoInstallError error = 1;

  // The current install state of the app.
  EnterpriseAutoInstallState state = 2;
}

PolicyVersion

// The version of the policy which these install states apply to.
message PolicyVersion {
  // A policy id which may be optionally set by the EMM.
  string policy_id = 1;
}

EnterpriseAutoInstallError

// Install errors resulting in failure to install an app.
enum EnterpriseAutoInstallError {
  // Catch-all for unrecognized enum values.
  ENTERPRISE_AUTO_INSTALL_ERROR_UNKNOWN = 0;

  // The app could not be found.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_FOUND = 1;

  // The app is not available in the user's country.
  ENTERPRISE_AUTO_INSTALL_ERROR_UNAVAILABLE_COUNTRY = 2;

  // The app is not compatible with the device hardware.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE = 3;

  // No license remained to grant ownership of the app, and the user did not
  // already own the app.
  ENTERPRISE_AUTO_INSTALL_ERROR_NO_LICENSES_REMAINING = 4;

  // Required permissions for the app have not been accepted.
  ENTERPRISE_AUTO_INSTALL_ERROR_MISSING_PERMISSION = 5;

  // The app is not available based on the enterprise availability policy.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_APPROVED_OR_UNAVAILABLE = 6;

  // The app is not available to the user or device.
  ENTERPRISE_AUTO_INSTALL_ERROR_APP_UNAVAILABLE = 7;

  // Failed to grant license because the user already has ownership.
  ENTERPRISE_AUTO_INSTALL_ERROR_INCOMPATIBLE_OWNERSHIP = 8;

  // The admin has not accepted the terms of service.
  ENTERPRISE_AUTO_INSTALL_ERROR_TOS_NOT_ACCEPTED = 9;

  // The device does not have enough RAM.
  ENTERPRISE_AUTO_INSTALL_ERROR_INSUFFICIENT_RAM = 10;

  // The app is incompatible with the device carrier.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_CARRIER = 11;

  // The app is incompatible with the country or carrier.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_COUNTRY_OR_CARRIER = 12;

  // The app is incompatible with the safe search level.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_SAFE_SEARCH_LEVEL = 13;

  // The app could not be installed due to an installer error.
  ENTERPRISE_AUTO_INSTALL_ERROR_INSTALL_FAILED = 14;

  // The app could not be installed due to network errors.
  ENTERPRISE_AUTO_INSTALL_ERROR_NETWORK_FAILED = 15;

  // The device does not have enough storage.
  ENTERPRISE_AUTO_INSTALL_ERROR_INSUFFICIENT_STORAGE = 16;
}

EnterpriseAutoInstallState

// The current install state for an app.
enum EnterpriseAutoInstallState {
  // Catch-all for unrecognized enum values.
  INSTALL_STATE_UNKNOWN = 0;

  // The app has been received by Play but an install attempt has not completed
  // yet.
  INSTALL_STATE_PENDING = 1;

  // The latest install attempt failed and will be retried automatically.
  INSTALL_STATE_ERROR = 2;

  // The app has been installed.
  INSTALL_STATE_INSTALLED = 3;
}

برنامه ها را برای آزمایش بسته توزیع کنید

آزمایش بسته به توسعه دهندگان برنامه اجازه می دهد تا در مورد نسخه های اولیه برنامه خود از کاربران قابل اعتماد بازخورد دریافت کنند. توسعه دهندگان می توانند تست های بسته را در کنسول Google Play تنظیم کنند. شما از Play EMM API استفاده می‌کنید تا مدیران فناوری اطلاعات بتوانند نسخه‌های بسته (که آهنگ‌ها نیز نامیده می‌شود) برنامه‌ها را بین کاربران خاص توزیع کنند. مشتریان سازمانی شما می توانند از این ویژگی نه تنها برای آزمایش برنامه های شخص ثالث، بلکه برای آزمایش برنامه های خصوصی توسعه یافته داخلی نیز استفاده کنند.

برنامه های واجد شرایط

قبل از اینکه یک توسعه‌دهنده شرکتی را به لیست آزمایش‌کنندگان بسته برنامه اضافه کند، برنامه باید معیارهای زیر را داشته باشد:

  • نسخه تولیدی برنامه در Google Play منتشر شده است.
  • در کنسول Google Play، Google Play مدیریت شده در صفحه تنظیمات پیشرفته برنامه فعال است.
  • همه نسخه‌های بسته برنامه الزامات کد نسخه را برآورده می‌کنند.

شرکتی را به تست های بسته اضافه کنید

توسعه‌دهندگان برنامه می‌توانند شرکت‌هایی را به آزمایش‌هایی اضافه کنند که از روش‌های تست آلفای بسته یا تست آلفا با استفاده از Google Groups استفاده می‌کنند. برای دستورالعمل‌ها، به راهنمای نحوه تنظیم تست باز، بسته یا داخلی مراجعه کنید. توسعه‌دهنده باید شناسه سازمان (که به آن ID سازمانی نیز گفته می‌شود) هر شرکت شرکت‌کننده را وارد کند. سرپرستان فناوری اطلاعات می‌توانند با دنبال کردن این مراحل، شناسه سازمان خود را در اختیار توسعه‌دهندگان برنامه‌های شخص ثالث قرار دهند:

  1. به فروشگاه مدیریت شده Google Play وارد شوید.
  2. روی تنظیمات مدیریت کلیک کنید.
  3. رشته ID سازمان را از کادر اطلاعات سازمان کپی کرده و برای توسعه دهنده ارسال کنید.

الزامات اضافی برای برنامه های خصوصی

برای برنامه‌های خصوصی، توسعه‌دهنده همچنین باید شناسه سازمان هر شرکت شرکت‌کننده را در برگه Google Play مدیریت شده در صفحه تنظیمات پیشرفته برنامه اضافه کند. برای دستورالعمل‌ها، به انتشار یک برنامه خصوصی مراجعه کنید.

مسیرهای بسته را بین کاربران توزیع کنید

برای بازیابی لیستی از آهنگ های موجود برای یک شرکت برای یک برنامه مشخص، با Products.get تماس بگیرید. فهرست appTracks[] موجود در پاسخ شامل آهنگ‌های موجود برای هر برنامه است. appTracks[].trackAlias ​​یک نام قابل خواندن توسط کاربر برای آهنگ است که می توانید آن را در کنسول EMM خود نمایش دهید، و appTracks[].trackId شناسه قابل خواندن ماشین برای آهنگ است.

برای اعطای دید کاربر به مسیر بسته برنامه، policy.productPolicy[].trackIds[] در policy Device تنظیم کنید. اگر چندین آهنگ برای یک دستگاه موجود باشد، نسخه موجود با بالاترین کد نسخه نصب خواهد شد.

TrackIds به طور خودکار از تماس Products.get در سناریوهای خاصی مانند موارد زیر حذف می شود:

  • APK آهنگ به تراک دیگر یا تولید ارتقا می یابد.
  • نسخه تولیدی با نسخه بالاتر از آهنگ به روز رسانی می شود.
  • یک توسعه دهنده مسیر را متوقف می کند.

مجوزهای برنامه پولی را پیگیری کنید

برای برنامه‌های پولی، شی Grouplicenses تعداد مجوزهای یک شرکت و تعداد مجوزهای در حال استفاده را پیگیری می‌کند. برای دریافت جزئیات مجوز برای یک برنامه می توانید با Grouplicenses.get تماس بگیرید.

قبل از اینکه یک برنامه پولی روی دستگاه نصب شود، شرکت باید مجوزی برای برنامه در دسترس داشته باشد. اگر مجوز در دسترس باشد، برنامه روی دستگاه نصب می‌شود و یک شیء Entitlements ایجاد می‌شود. یک شیء Entitlements یک مجوز را با یک کاربر پیوند می دهد و تعداد مجوزهای موجود برای برنامه را کاهش می دهد. اگر هیچ مجوزی در دسترس نباشد، نصب برنامه با شکست مواجه می شود و هیچ شیء Entitlements ایجاد نمی شود.

Grouplicenses و اشیاء Entitlements توسط برنامه هایی که بدون هزینه توزیع می شوند استفاده نمی شوند.

،

Google Play EMM API از روش‌های توزیع زیر برای برنامه‌های عمومی و خصوصی پشتیبانی می‌کند:

به صورت دستی برنامه ها را از فروشگاه مدیریت شده Google Play نصب کنید

می‌توانید برنامه‌هایی را برای نصب در policy Device تعریف کنید و با تماس با Devices.update آن را تنظیم کنید. هنگام تهیه یک دستگاه جدید، باید قبل از افزودن حساب مدیریت شده Google Play به دستگاه، خط‌مشی را تنظیم کنید، در غیر این صورت این خط‌مشی برای مدت کوتاهی پس از افزودن حساب به دستگاه اعمال نخواهد شد.

رفتار فروشگاه Play مدیریت شده با مقدار policy.productAvailabilityPolicy تعریف می شود:

  • all : همه برنامه‌های عمومی از Play Store در دسترس هستند.
  • whitelist : فقط برنامه های فهرست شده در policy.productPolicy در دسترس هستند.

در هر دو مورد، همه برنامه‌های موجود در policy.productPolicy به‌طور پیش‌فرض به طرح‌بندی فروشگاه شرکت اضافه می‌شوند. طرح‌بندی فروشگاه شرکت، صفحه اصلی فروشگاه Play مدیریت‌شده در صورت انتخاب whitelist است، و وقتی all انتخاب شده است، می‌توان در برگه «برنامه‌های کاری» به آن دسترسی داشت. می‌توانید با جاسازی iframe مدیریت‌شده Google Play به مشتری خود اجازه دهید طرح‌بندی فروشگاه شرکت را سفارشی کند (به سازمان‌دهی برنامه‌ها با iframe مدیریت‌شده Google Play مراجعه کنید).

برنامه ها را از راه دور بر روی دستگاه های کاربر نصب کنید

برای نصب از راه دور (که نصب فشاری نیز نامیده می شود) یک برنامه در دستگاه کاربر، policy.productPolicy.autoInstallPolicy را در policy Device تنظیم کنید. هنگام تهیه یک دستگاه جدید، باید قبل از افزودن حساب مدیریت شده Google Play به دستگاه، خط‌مشی را تنظیم کنید، در غیر این صورت این خط‌مشی برای مدت کوتاهی پس از افزودن حساب به دستگاه اعمال نخواهد شد.

autoInstallMode را می توان روی موارد زیر تنظیم کرد:

  • doNotAutoInstall : برنامه به طور خودکار نصب نمی شود.
  • autoInstallOnce : برنامه یک بار به طور خودکار نصب می شود، اگر کاربر برنامه را حذف نصب کند، دیگر نصب نمی شود.
  • forceAutoInstall : برنامه به طور خودکار نصب می شود، اگر کاربر برنامه را حذف نصب کند، دوباره نصب می شود. در دستگاه های مدیریت شده، DPC باید حذف نصب را با استفاده از DevicePolicyManager.setUninstallBlocked مسدود کند.

در صورت خرابی (از دست دادن اتصال، کمبود فضای ذخیره‌سازی و غیره)، نصب‌ها تا زمانی که موفق شوند به‌طور خودکار تکرار می‌شوند. برای جلوگیری از هدر رفتن باتری و داده ها در صورت خرابی های غیرقابل جبران، یک استراتژی تکرار نمایی نمایی اعمال می شود.

اولویت را نصب کنید

می‌توانید ترتیب نصب‌ها را با تنظیم autoInstallPriority انتخاب کنید. اولویت باید یک عدد صحیح بدون علامت باشد و مقدار پیش‌فرض آن 0 باشد. برنامه‌ها به ترتیب یا اولویت نصب می‌شوند، به این معنی که ابتدا برنامه‌هایی با مقدار اولویت پایین‌تر نصب می‌شوند.

محدودیت ها را نصب کنید

می‌توانید با تنظیم autoInstallConstraint محدودیت‌های نصب را برای هر برنامه تنظیم کنید، که به شما امکان می‌دهد وضعیت مورد نیاز دستگاه را در حین نصب کنترل کنید:

  • آیا دستگاه باید به یک شبکه Wi-Fi متصل شود،
  • آیا دستگاه باید شارژ شود،
  • و اینکه آیا دستگاه باید بیکار باشد (به طور فعال توسط کاربر استفاده نمی شود).

اگر محدودیت ها فورا برآورده نشوند، نصب های تحت تأثیر تا زمانی که محدودیت ها برآورده شوند در صف قرار می گیرند.

در autoInstallConstraint قانون AND بین فیلدها اعمال می شود. برای مثال، با autoInstallConstraint زیر، دستگاه باید هم در حال شارژ باشد و هم به یک شبکه بدون اندازه (مثلاً Wi-Fi) متصل باشد تا برنامه نصب شود:

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

نصب خودکار برنامه ها در دستگاه هایی که به تازگی ارائه شده است

Google Play EMM API یک اعلان NewDeviceEvent هنگامی که دستگاهی برای اولین بار تهیه می شود ارسال می کند. برای نصب خودکار برنامه‌ها در دستگاه‌هایی که به تازگی ارائه شده‌اند، به اعلان‌های NewDeviceEvent گوش دهید. از هر NewDeviceEvent ، userId و deviceId را بازیابی کنید و سپس Devices.update برای تنظیم خط مشی آن دستگاه فراخوانی کنید.

برای آشنایی با نحوه اشتراک در اعلان‌های EMM، به تنظیم اعلان‌های EMM مراجعه کنید.

بازخورد خطای نصب خودکار برنامه

خطاهای مربوط به نصب برنامه از طریق App Feedback گزارش می شود و DPC می تواند پیام EnterprisePolicyStatus ارسال شده از طریق KeyedAppStatesService را نظارت کند.

برای رمزگشایی داده های کدگذاری شده Base64، DPC باید کلاس هایی را بر اساس تعریف اولیه EnterprisePolicyStatus ایجاد کند. برای دستورالعمل‌های مربوط به تولید کلاس‌های پروتوکل، به مستندات بافرهای پروتکل مراجعه کنید.

با کلاس های تولید شده، DPC می تواند شی EnterprisePolicyStatus را رمزگشایی کند:

EnterprisePolicyStatus enterprisePolicyStatus = EnterprisePolicyStatus.parseFrom(
    BaseEncoding.base64().decode(base64EncodedString)
);

سیاست دستگاه اکنون شامل فیلد اختیاری جدید PolicyId است. هنگام ایجاد یا به‌روزرسانی یک خط‌مشی، EMM می‌تواند PolicyId را روی هر مقدار رشته تنظیم کند تا یک نسخه خط‌مشی دستگاه خاص را شناسایی کند.

در صورت وجود، بازخورد نصب برنامه، PolicyId را گزارش می‌دهد تا DPC بتواند خطاهای دریافتی را با خط‌مشی‌های خاص مطابقت دهد.

EnterprisePolicyStatus

message EnterprisePolicyStatus {
  // Individual status for an app in the policy
  repeated ApplicationStatus app_status = 1;

  // Version of the policy for which this status applies.
  PolicyVersion version = 2;
}

وضعیت برنامه

// Individual status for an app.
message ApplicationStatus {
  // The package name for the app.
  string package_name = 1;

  // The install status for the app. Only includes status for apps scheduled
  // to be auto-installed via the policy resource.
  AutoInstallStatus install_status = 2;
}

وضعیت نصب خودکار

// Auto-install status for an app.
message AutoInstallStatus {
  // The error causing the install to fail if state is INSTALL_ERROR.
  EnterpriseAutoInstallError error = 1;

  // The current install state of the app.
  EnterpriseAutoInstallState state = 2;
}

PolicyVersion

// The version of the policy which these install states apply to.
message PolicyVersion {
  // A policy id which may be optionally set by the EMM.
  string policy_id = 1;
}

EnterpriseAutoInstallError

// Install errors resulting in failure to install an app.
enum EnterpriseAutoInstallError {
  // Catch-all for unrecognized enum values.
  ENTERPRISE_AUTO_INSTALL_ERROR_UNKNOWN = 0;

  // The app could not be found.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_FOUND = 1;

  // The app is not available in the user's country.
  ENTERPRISE_AUTO_INSTALL_ERROR_UNAVAILABLE_COUNTRY = 2;

  // The app is not compatible with the device hardware.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE = 3;

  // No license remained to grant ownership of the app, and the user did not
  // already own the app.
  ENTERPRISE_AUTO_INSTALL_ERROR_NO_LICENSES_REMAINING = 4;

  // Required permissions for the app have not been accepted.
  ENTERPRISE_AUTO_INSTALL_ERROR_MISSING_PERMISSION = 5;

  // The app is not available based on the enterprise availability policy.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_APPROVED_OR_UNAVAILABLE = 6;

  // The app is not available to the user or device.
  ENTERPRISE_AUTO_INSTALL_ERROR_APP_UNAVAILABLE = 7;

  // Failed to grant license because the user already has ownership.
  ENTERPRISE_AUTO_INSTALL_ERROR_INCOMPATIBLE_OWNERSHIP = 8;

  // The admin has not accepted the terms of service.
  ENTERPRISE_AUTO_INSTALL_ERROR_TOS_NOT_ACCEPTED = 9;

  // The device does not have enough RAM.
  ENTERPRISE_AUTO_INSTALL_ERROR_INSUFFICIENT_RAM = 10;

  // The app is incompatible with the device carrier.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_CARRIER = 11;

  // The app is incompatible with the country or carrier.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_COUNTRY_OR_CARRIER = 12;

  // The app is incompatible with the safe search level.
  ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE_SAFE_SEARCH_LEVEL = 13;

  // The app could not be installed due to an installer error.
  ENTERPRISE_AUTO_INSTALL_ERROR_INSTALL_FAILED = 14;

  // The app could not be installed due to network errors.
  ENTERPRISE_AUTO_INSTALL_ERROR_NETWORK_FAILED = 15;

  // The device does not have enough storage.
  ENTERPRISE_AUTO_INSTALL_ERROR_INSUFFICIENT_STORAGE = 16;
}

EnterpriseAutoInstallState

// The current install state for an app.
enum EnterpriseAutoInstallState {
  // Catch-all for unrecognized enum values.
  INSTALL_STATE_UNKNOWN = 0;

  // The app has been received by Play but an install attempt has not completed
  // yet.
  INSTALL_STATE_PENDING = 1;

  // The latest install attempt failed and will be retried automatically.
  INSTALL_STATE_ERROR = 2;

  // The app has been installed.
  INSTALL_STATE_INSTALLED = 3;
}

برنامه ها را برای آزمایش بسته توزیع کنید

آزمایش بسته به توسعه دهندگان برنامه اجازه می دهد تا در مورد نسخه های اولیه برنامه خود از کاربران قابل اعتماد بازخورد دریافت کنند. توسعه دهندگان می توانند تست های بسته را در کنسول Google Play تنظیم کنند. شما از Play EMM API استفاده می‌کنید تا مدیران فناوری اطلاعات بتوانند نسخه‌های بسته (که آهنگ‌ها نیز نامیده می‌شود) برنامه‌ها را بین کاربران خاص توزیع کنند. مشتریان سازمانی شما می توانند از این ویژگی نه تنها برای آزمایش برنامه های شخص ثالث، بلکه برای آزمایش برنامه های خصوصی توسعه یافته داخلی نیز استفاده کنند.

برنامه های واجد شرایط

قبل از اینکه یک توسعه‌دهنده شرکتی را به لیست آزمایش‌کنندگان بسته برنامه اضافه کند، برنامه باید معیارهای زیر را داشته باشد:

  • نسخه تولیدی برنامه در Google Play منتشر شده است.
  • در کنسول Google Play، Google Play مدیریت شده در صفحه تنظیمات پیشرفته برنامه فعال است.
  • همه نسخه‌های بسته برنامه الزامات کد نسخه را برآورده می‌کنند.

شرکتی را به تست های بسته اضافه کنید

توسعه‌دهندگان برنامه می‌توانند شرکت‌هایی را به آزمایش‌هایی اضافه کنند که از روش‌های تست آلفای بسته یا تست آلفا با استفاده از Google Groups استفاده می‌کنند. برای دستورالعمل‌ها، به راهنمای نحوه تنظیم تست باز، بسته یا داخلی مراجعه کنید. توسعه‌دهنده باید شناسه سازمان (که به آن ID سازمانی نیز گفته می‌شود) هر شرکت شرکت‌کننده را وارد کند. سرپرستان فناوری اطلاعات می‌توانند با دنبال کردن این مراحل، شناسه سازمان خود را در اختیار توسعه‌دهندگان برنامه‌های شخص ثالث قرار دهند:

  1. به فروشگاه مدیریت شده Google Play وارد شوید.
  2. روی تنظیمات مدیریت کلیک کنید.
  3. رشته ID سازمان را از کادر اطلاعات سازمان کپی کرده و برای توسعه دهنده ارسال کنید.

الزامات اضافی برای برنامه های خصوصی

برای برنامه‌های خصوصی، توسعه‌دهنده همچنین باید شناسه سازمان هر شرکت شرکت‌کننده را در برگه Google Play مدیریت شده در صفحه تنظیمات پیشرفته برنامه اضافه کند. برای دستورالعمل‌ها، به انتشار یک برنامه خصوصی مراجعه کنید.

مسیرهای بسته را بین کاربران توزیع کنید

برای بازیابی لیستی از آهنگ های موجود برای یک شرکت برای یک برنامه مشخص، با Products.get تماس بگیرید. فهرست appTracks[] موجود در پاسخ شامل آهنگ‌های موجود برای هر برنامه است. appTracks[].trackAlias ​​یک نام قابل خواندن توسط کاربر برای آهنگ است که می توانید آن را در کنسول EMM خود نمایش دهید، و appTracks[].trackId شناسه قابل خواندن ماشین برای آهنگ است.

برای اعطای دید کاربر به مسیر بسته برنامه، policy.productPolicy[].trackIds[] در policy Device تنظیم کنید. اگر چندین آهنگ برای یک دستگاه موجود باشد، نسخه موجود با بالاترین کد نسخه نصب خواهد شد.

TrackIds به طور خودکار از تماس Products.get در سناریوهای خاصی مانند موارد زیر حذف می شود:

  • APK آهنگ به تراک دیگر یا تولید ارتقا می یابد.
  • نسخه تولیدی با نسخه بالاتر از آهنگ به روز رسانی می شود.
  • یک توسعه دهنده مسیر را متوقف می کند.

مجوزهای برنامه پولی را پیگیری کنید

برای برنامه‌های پولی، شی Grouplicenses تعداد مجوزهای یک شرکت و تعداد مجوزهای در حال استفاده را پیگیری می‌کند. برای دریافت جزئیات مجوز برای یک برنامه می توانید با Grouplicenses.get تماس بگیرید.

قبل از اینکه یک برنامه پولی روی دستگاه نصب شود، شرکت باید مجوزی برای برنامه در دسترس داشته باشد. اگر مجوز در دسترس باشد، برنامه روی دستگاه نصب می‌شود و یک شیء Entitlements ایجاد می‌شود. یک شیء Entitlements یک مجوز را با یک کاربر پیوند می دهد و تعداد مجوزهای موجود برای برنامه را کاهش می دهد. اگر هیچ مجوزی در دسترس نباشد، نصب برنامه با شکست مواجه می شود و هیچ شیء Entitlements ایجاد نمی شود.

Grouplicenses و اشیاء Entitlements توسط برنامه هایی که بدون هزینه توزیع می شوند استفاده نمی شوند.