অ্যাপস বিতরণ করুন

Google Play EMM API সর্বজনীন এবং ব্যক্তিগত অ্যাপগুলির জন্য নিম্নলিখিত বিতরণ পদ্ধতিগুলিকে সমর্থন করে:

পরিচালিত Google Play স্টোর থেকে ম্যানুয়ালি অ্যাপ ইনস্টল করুন

Device policy ব্যবহারকারীর জন্য কোন অ্যাপগুলি ইনস্টল করার জন্য উপলব্ধ তা আপনি নির্ধারণ করতে পারেন এবং Devices.update কল করে এটি সেট করতে পারেন৷ একটি নতুন ডিভাইসের ব্যবস্থা করার সময়, ডিভাইসে পরিচালিত Google Play অ্যাকাউন্ট যোগ করার আগে আপনার নীতি সেট করা উচিত, অন্যথায় ডিভাইসে অ্যাকাউন্ট যোগ করার পরে নীতিটি অল্প সময়ের জন্য প্রয়োগ করা হবে না।

পরিচালিত Play Store আচরণ policy.productAvailabilityPolicy মান দ্বারা সংজ্ঞায়িত করা হয়.productAvailabilityPolicy :

  • all : প্লে স্টোর থেকে সমস্ত পাবলিক অ্যাপ উপলব্ধ।
  • whitelist : শুধুমাত্র policy.productPolicy তালিকাভুক্ত অ্যাপ পাওয়া যায়।

উভয় ক্ষেত্রেই, policy.productPolicy এর সমস্ত অ্যাপ ডিফল্টরূপে এন্টারপ্রাইজের স্টোর লেআউটে যোগ করা হয়। এন্টারপ্রাইজের স্টোর লেআউট হল পরিচালিত প্লে স্টোরের হোমপেজ যখন whitelist নির্বাচন করা হয়, এবং যখন all নির্বাচন করা হয় তখন একটি "ওয়ার্ক অ্যাপস" ট্যাবে অ্যাক্সেস করা যেতে পারে। আপনি আপনার গ্রাহককে পরিচালিত Google Play iframe এম্বেড করে এন্টারপ্রাইজের স্টোর লেআউট কাস্টমাইজ করার অনুমতি দিতে পারেন ( পরিচালিত Google Play iframe এর সাথে অ্যাপগুলি সংগঠিত করুন দেখুন)।

ব্যবহারকারীর ডিভাইসে দূরবর্তীভাবে অ্যাপ ইনস্টল করুন

ব্যবহারকারীর ডিভাইসে একটি অ্যাপ দূরবর্তীভাবে ইনস্টল করতে (পুশ ইনস্টলও বলা হয়) Device policy policy.productPolicy.autoInstallPolicy .productPolicy.autoInstallPolicy সেট করুন। একটি নতুন ডিভাইসের ব্যবস্থা করার সময়, ডিভাইসে পরিচালিত 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 বিজ্ঞপ্তি সেট আপ দেখুন।

অ্যাপ স্বয়ংক্রিয়ভাবে ইনস্টল ত্রুটি প্রতিক্রিয়া

অ্যাপ ইনস্টলেশন সম্পর্কিত ত্রুটিগুলি অ্যাপ ফিডব্যাকের মাধ্যমে রিপোর্ট করা হয়, এবং DPC KeyedAppStatesService মাধ্যমে প্রেরিত EnterprisePolicyStatus বার্তা নিরীক্ষণ করতে পারে।

Base64 এনকোড করা ডেটা ডিকোড করতে, DPC-কে অবশ্যই EnterprisePolicyStatus এর প্রোটো সংজ্ঞার উপর ভিত্তি করে ক্লাস তৈরি করতে হবে। প্রোটো ক্লাস তৈরি করার নির্দেশাবলীর জন্য প্রোটোকল বাফার ডকুমেন্টেশন পড়ুন।

জেনারেট করা ক্লাসের সাথে, DPC EnterprisePolicyStatus অবজেক্ট ডিকোড করতে পারে:

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

ডিভাইস নীতিতে এখন নতুন ঐচ্ছিক ক্ষেত্র PolicyId অন্তর্ভুক্ত রয়েছে। একটি নীতি তৈরি বা আপডেট করার সময়, EMM একটি নির্দিষ্ট ডিভাইস নীতি সংস্করণ সনাক্ত করার জন্য যে কোনো স্ট্রিং মান PolicyId সেট করতে পারে।

উপলব্ধ থাকলে, অ্যাপ ইনস্টল ফিডব্যাক PolicyId রিপোর্ট করবে যাতে DPC নির্দিষ্ট নীতির সাথে প্রাপ্ত ত্রুটিগুলিকে মেলাতে পারে।

এন্টারপ্রাইজ পলিসি স্ট্যাটাস

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

নীতি সংস্করণ

// 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 কনসোলে বন্ধ পরীক্ষা সেট আপ করতে পারেন। নির্দিষ্ট ব্যবহারকারীদের কাছে অ্যাপের বন্ধ সংস্করণ (যাকে ট্র্যাকও বলা হয়) বিতরণ করতে IT অ্যাডমিনদের সক্ষম করতে আপনি Play EMM API ব্যবহার করেন। আপনার এন্টারপ্রাইজের গ্রাহকরা এই বৈশিষ্ট্যটি শুধুমাত্র 3য় পক্ষের অ্যাপ পরীক্ষা করতেই ব্যবহার করতে পারবেন না, কিন্তু অভ্যন্তরীণভাবে তৈরি করা ব্যক্তিগত অ্যাপগুলিও পরীক্ষা করতে পারবেন।

যোগ্য অ্যাপ

কোনও ডেভেলপার অ্যাপের বন্ধ পরীক্ষকদের তালিকায় কোনও এন্টারপ্রাইজ যোগ করার আগে, অ্যাপটিকে নিম্নলিখিত মানদণ্ড পূরণ করতে হবে:

  • অ্যাপটির একটি প্রোডাকশন সংস্করণ Google Play-তে প্রকাশিত হয়েছে।
  • Google Play কনসোলে, অ্যাপের উন্নত সেটিংস পৃষ্ঠায় পরিচালিত Google Play সক্ষম করা আছে।
  • অ্যাপের যেকোনো বন্ধ সংস্করণ সংস্করণ কোডের প্রয়োজনীয়তা পূরণ করে।

বন্ধ পরীক্ষায় একটি এন্টারপ্রাইজ যোগ করুন

অ্যাপ ডেভেলপাররা ক্লোজড আলফা টেস্টিং , বা Google গ্রুপ ব্যবহার করে আলফা টেস্টিং পদ্ধতিগুলি ব্যবহার করে এমন পরীক্ষায় এন্টারপ্রাইজ যোগ করতে পারে। নির্দেশাবলীর জন্য, কিভাবে একটি খোলা, বন্ধ বা অভ্যন্তরীণ পরীক্ষা সেট আপ করতে হয় তার নির্দেশিকা দেখুন। বিকাশকারীকে প্রতিটি অংশগ্রহণকারী এন্টারপ্রাইজের প্রতিষ্ঠানের আইডি (এছাড়াও এন্টারপ্রাইজ আইডি হিসাবে উল্লেখ করা হয়) প্রবেশ করাতে হবে। আইটি অ্যাডমিনরা এই ধাপগুলি অনুসরণ করে 3য় পক্ষের অ্যাপ ডেভেলপারদের তাদের প্রতিষ্ঠানের আইডি প্রদান করতে পারেন:

  1. পরিচালিত Google Play স্টোরে সাইন ইন করুন।
  2. অ্যাডমিন সেটিংসে ক্লিক করুন।
  3. প্রতিষ্ঠানের তথ্য বাক্স থেকে সংস্থার আইডি স্ট্রিংটি অনুলিপি করুন এবং এটি বিকাশকারীকে পাঠান।

ব্যক্তিগত অ্যাপের জন্য অতিরিক্ত প্রয়োজনীয়তা

ব্যক্তিগত অ্যাপের জন্য, ডেভেলপারকে অ্যাপের অ্যাডভান্সড সেটিংস পৃষ্ঠার পরিচালিত Google Play ট্যাবে প্রতিটি অংশগ্রহণকারী এন্টারপ্রাইজের সংগঠন আইডি যোগ করতে হবে। নির্দেশাবলীর জন্য, একটি ব্যক্তিগত অ্যাপ প্রকাশ করুন দেখুন।

ব্যবহারকারীদের কাছে বন্ধ ট্র্যাক বিতরণ

একটি নির্দিষ্ট অ্যাপের জন্য একটি এন্টারপ্রাইজে উপলব্ধ ট্র্যাকগুলির একটি তালিকা পুনরুদ্ধার করতে, Products.get এ কল করুন। প্রতিক্রিয়াতে থাকা appTracks[] তালিকায় প্রতিটি অ্যাপের জন্য উপলব্ধ ট্র্যাকগুলি অন্তর্ভুক্ত রয়েছে। appTracks[].trackAlias ​​হল একটি ব্যবহারকারীর পঠনযোগ্য নাম যেটি আপনি আপনার EMM কনসোলে প্রদর্শন করতে পারেন, এবং appTracks[].trackId হল ট্র্যাকের জন্য মেশিন রিডেবল আইডি।

একটি অ্যাপের ক্লোজড ট্র্যাকে ব্যবহারকারীকে দৃশ্যমানতা দিতে, Device policy policy.productPolicy[].trackIds[] সেট করুন। একটি ডিভাইসের জন্য একাধিক ট্র্যাক উপলব্ধ থাকলে, সর্বোচ্চ সংস্করণ কোড সহ উপলব্ধ সংস্করণ ইনস্টল করা হবে৷

নিম্নলিখিতগুলির মতো নির্দিষ্ট পরিস্থিতিতে Products.get কল থেকে trackIds স্বয়ংক্রিয়ভাবে সরানো হবে:

  • ট্র্যাকের APK অন্য ট্র্যাকে বা উৎপাদনে উন্নীত হয়৷
  • প্রোডাকশন সংস্করণটি ট্র্যাকের চেয়ে উচ্চতর সংস্করণের সাথে আপডেট করা হয়েছে।
  • একজন বিকাশকারী ট্র্যাক বন্ধ করে দেয়।

পেইড অ্যাপ লাইসেন্স ট্র্যাক রাখুন

অর্থপ্রদানের অ্যাপগুলির জন্য Grouplicenses অবজেক্ট একটি এন্টারপ্রাইজের কতগুলি লাইসেন্সের মালিক এবং কতগুলি লাইসেন্স ব্যবহার করা হচ্ছে তা ট্র্যাক করে। আপনি একটি অ্যাপের লাইসেন্সের বিবরণ পেতে Grouplicenses.get এ কল করতে পারেন।

একটি ডিভাইসে একটি অর্থপ্রদানের অ্যাপ ইনস্টল করার আগে, এন্টারপ্রাইজের অ্যাপটির জন্য একটি লাইসেন্স উপলব্ধ থাকতে হবে। যদি একটি লাইসেন্স পাওয়া যায়, অ্যাপটি ডিভাইসে ইনস্টল করা হয় এবং একটি Entitlements অবজেক্ট তৈরি করা হয়। একটি Entitlements অবজেক্ট একটি ব্যবহারকারীর সাথে একটি লাইসেন্স লিঙ্ক করে এবং অ্যাপের জন্য উপলব্ধ লাইসেন্সের সংখ্যা হ্রাস করে। যদি কোনো লাইসেন্স উপলব্ধ না থাকে, তাহলে অ্যাপ ইনস্টলেশন ব্যর্থ হয় এবং কোনো Entitlements অবজেক্ট তৈরি হয় না।

Grouplicenses এবং Entitlements অবজেক্টগুলি এমন অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয় না যা চার্জ ছাড়াই বিতরণ করা হয়।

,

Google Play EMM API সর্বজনীন এবং ব্যক্তিগত অ্যাপগুলির জন্য নিম্নলিখিত বিতরণ পদ্ধতিগুলিকে সমর্থন করে:

পরিচালিত Google Play স্টোর থেকে ম্যানুয়ালি অ্যাপ ইনস্টল করুন

Device policy ব্যবহারকারীর জন্য কোন অ্যাপগুলি ইনস্টল করার জন্য উপলব্ধ তা আপনি নির্ধারণ করতে পারেন এবং Devices.update কল করে এটি সেট করতে পারেন৷ একটি নতুন ডিভাইসের ব্যবস্থা করার সময়, ডিভাইসে পরিচালিত Google Play অ্যাকাউন্ট যোগ করার আগে আপনার নীতি সেট করা উচিত, অন্যথায় ডিভাইসে অ্যাকাউন্ট যোগ করার পরে নীতিটি অল্প সময়ের জন্য প্রয়োগ করা হবে না।

পরিচালিত Play Store আচরণ policy.productAvailabilityPolicy মান দ্বারা সংজ্ঞায়িত করা হয়.productAvailabilityPolicy :

  • all : প্লে স্টোর থেকে সমস্ত পাবলিক অ্যাপ উপলব্ধ।
  • whitelist : শুধুমাত্র policy.productPolicy তালিকাভুক্ত অ্যাপ পাওয়া যায়।

উভয় ক্ষেত্রেই, policy.productPolicy এর সমস্ত অ্যাপ ডিফল্টরূপে এন্টারপ্রাইজের স্টোর লেআউটে যোগ করা হয়। এন্টারপ্রাইজের স্টোর লেআউট হল পরিচালিত প্লে স্টোরের হোমপেজ যখন whitelist নির্বাচন করা হয়, এবং যখন all নির্বাচন করা হয় তখন একটি "ওয়ার্ক অ্যাপস" ট্যাবে অ্যাক্সেস করা যেতে পারে। আপনি আপনার গ্রাহককে পরিচালিত Google Play iframe এম্বেড করে এন্টারপ্রাইজের স্টোর লেআউট কাস্টমাইজ করার অনুমতি দিতে পারেন ( পরিচালিত Google Play iframe এর সাথে অ্যাপগুলি সংগঠিত করুন দেখুন)।

ব্যবহারকারীর ডিভাইসে দূরবর্তীভাবে অ্যাপ ইনস্টল করুন

ব্যবহারকারীর ডিভাইসে একটি অ্যাপ দূরবর্তীভাবে ইনস্টল করতে (পুশ ইনস্টলও বলা হয়) Device policy policy.productPolicy.autoInstallPolicy .productPolicy.autoInstallPolicy সেট করুন। একটি নতুন ডিভাইসের ব্যবস্থা করার সময়, ডিভাইসে পরিচালিত 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 বিজ্ঞপ্তি সেট আপ দেখুন।

অ্যাপ স্বয়ংক্রিয়ভাবে ইনস্টল ত্রুটি প্রতিক্রিয়া

অ্যাপ ইনস্টলেশন সম্পর্কিত ত্রুটিগুলি অ্যাপ ফিডব্যাকের মাধ্যমে রিপোর্ট করা হয়, এবং DPC KeyedAppStatesService মাধ্যমে প্রেরিত EnterprisePolicyStatus বার্তা নিরীক্ষণ করতে পারে।

Base64 এনকোড করা ডেটা ডিকোড করতে, DPC-কে অবশ্যই EnterprisePolicyStatus এর প্রোটো সংজ্ঞার উপর ভিত্তি করে ক্লাস তৈরি করতে হবে। প্রোটো ক্লাস তৈরি করার নির্দেশাবলীর জন্য প্রোটোকল বাফার ডকুমেন্টেশন পড়ুন।

জেনারেট করা ক্লাসের সাথে, DPC EnterprisePolicyStatus অবজেক্ট ডিকোড করতে পারে:

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

ডিভাইস নীতিতে এখন নতুন ঐচ্ছিক ক্ষেত্র PolicyId অন্তর্ভুক্ত রয়েছে। একটি নীতি তৈরি বা আপডেট করার সময়, EMM একটি নির্দিষ্ট ডিভাইস নীতি সংস্করণ সনাক্ত করার জন্য যে কোনো স্ট্রিং মান PolicyId সেট করতে পারে।

উপলব্ধ থাকলে, অ্যাপ ইনস্টল ফিডব্যাক PolicyId রিপোর্ট করবে যাতে DPC নির্দিষ্ট নীতির সাথে প্রাপ্ত ত্রুটিগুলিকে মেলাতে পারে।

এন্টারপ্রাইজ পলিসি স্ট্যাটাস

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

নীতি সংস্করণ

// 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 কনসোলে বন্ধ পরীক্ষা সেট আপ করতে পারেন। নির্দিষ্ট ব্যবহারকারীদের কাছে অ্যাপের বন্ধ সংস্করণ (যাকে ট্র্যাকও বলা হয়) বিতরণ করতে IT অ্যাডমিনদের সক্ষম করতে আপনি Play EMM API ব্যবহার করেন। আপনার এন্টারপ্রাইজের গ্রাহকরা এই বৈশিষ্ট্যটি শুধুমাত্র 3য় পক্ষের অ্যাপ পরীক্ষা করতেই ব্যবহার করতে পারবেন না, কিন্তু অভ্যন্তরীণভাবে তৈরি করা ব্যক্তিগত অ্যাপগুলিও পরীক্ষা করতে পারবেন।

যোগ্য অ্যাপ

কোনও ডেভেলপার অ্যাপের বন্ধ পরীক্ষকদের তালিকায় কোনও এন্টারপ্রাইজ যোগ করার আগে, অ্যাপটিকে নিম্নলিখিত মানদণ্ড পূরণ করতে হবে:

  • অ্যাপটির একটি প্রোডাকশন সংস্করণ Google Play-তে প্রকাশিত হয়েছে।
  • Google Play কনসোলে, অ্যাপের উন্নত সেটিংস পৃষ্ঠায় পরিচালিত Google Play সক্ষম করা আছে।
  • অ্যাপের যেকোনো বন্ধ সংস্করণ সংস্করণ কোডের প্রয়োজনীয়তা পূরণ করে।

বন্ধ পরীক্ষায় একটি এন্টারপ্রাইজ যোগ করুন

অ্যাপ ডেভেলপাররা ক্লোজড আলফা টেস্টিং , বা Google গ্রুপ ব্যবহার করে আলফা টেস্টিং পদ্ধতিগুলি ব্যবহার করে এমন পরীক্ষায় এন্টারপ্রাইজ যোগ করতে পারে। নির্দেশাবলীর জন্য, কিভাবে একটি খোলা, বন্ধ বা অভ্যন্তরীণ পরীক্ষা সেট আপ করতে হয় তার নির্দেশিকা দেখুন। বিকাশকারীকে প্রতিটি অংশগ্রহণকারী এন্টারপ্রাইজের প্রতিষ্ঠানের আইডি (এছাড়াও এন্টারপ্রাইজ আইডি হিসাবে উল্লেখ করা হয়) প্রবেশ করাতে হবে। আইটি অ্যাডমিনরা এই ধাপগুলি অনুসরণ করে 3য় পক্ষের অ্যাপ ডেভেলপারদের তাদের প্রতিষ্ঠানের আইডি প্রদান করতে পারেন:

  1. পরিচালিত Google Play স্টোরে সাইন ইন করুন।
  2. অ্যাডমিন সেটিংসে ক্লিক করুন।
  3. প্রতিষ্ঠানের তথ্য বাক্স থেকে সংস্থার আইডি স্ট্রিংটি অনুলিপি করুন এবং এটি বিকাশকারীকে পাঠান।

ব্যক্তিগত অ্যাপের জন্য অতিরিক্ত প্রয়োজনীয়তা

ব্যক্তিগত অ্যাপের জন্য, ডেভেলপারকে অ্যাপের অ্যাডভান্সড সেটিংস পৃষ্ঠার পরিচালিত Google Play ট্যাবে প্রতিটি অংশগ্রহণকারী এন্টারপ্রাইজের সংগঠন আইডি যোগ করতে হবে। নির্দেশাবলীর জন্য, একটি ব্যক্তিগত অ্যাপ প্রকাশ করুন দেখুন।

ব্যবহারকারীদের কাছে বন্ধ ট্র্যাক বিতরণ

একটি নির্দিষ্ট অ্যাপের জন্য একটি এন্টারপ্রাইজে উপলব্ধ ট্র্যাকগুলির একটি তালিকা পুনরুদ্ধার করতে, Products.get এ কল করুন। প্রতিক্রিয়াতে থাকা appTracks[] তালিকায় প্রতিটি অ্যাপের জন্য উপলব্ধ ট্র্যাকগুলি অন্তর্ভুক্ত রয়েছে। appTracks[].trackAlias ​​হল একটি ব্যবহারকারীর পঠনযোগ্য নাম যেটি আপনি আপনার EMM কনসোলে প্রদর্শন করতে পারেন, এবং appTracks[].trackId হল ট্র্যাকের জন্য মেশিন রিডেবল আইডি।

একটি অ্যাপের ক্লোজড ট্র্যাকে ব্যবহারকারীকে দৃশ্যমানতা দিতে, Device policy policy.productPolicy[].trackIds[] সেট করুন। একটি ডিভাইসের জন্য একাধিক ট্র্যাক উপলব্ধ থাকলে, সর্বোচ্চ সংস্করণ কোড সহ উপলব্ধ সংস্করণ ইনস্টল করা হবে৷

নিম্নলিখিতগুলির মতো নির্দিষ্ট পরিস্থিতিতে Products.get কল থেকে trackIds স্বয়ংক্রিয়ভাবে সরানো হবে:

  • ট্র্যাকের APK অন্য ট্র্যাকে বা উৎপাদনে উন্নীত হয়৷
  • প্রোডাকশন সংস্করণটি ট্র্যাকের চেয়ে উচ্চতর সংস্করণের সাথে আপডেট করা হয়েছে।
  • একজন বিকাশকারী ট্র্যাক বন্ধ করে দেয়।

পেইড অ্যাপ লাইসেন্স ট্র্যাক রাখুন

অর্থপ্রদানের অ্যাপগুলির জন্য Grouplicenses অবজেক্ট একটি এন্টারপ্রাইজের কতগুলি লাইসেন্সের মালিক এবং কতগুলি লাইসেন্স ব্যবহার করা হচ্ছে তা ট্র্যাক করে। আপনি একটি অ্যাপের লাইসেন্সের বিবরণ পেতে Grouplicenses.get এ কল করতে পারেন।

একটি ডিভাইসে একটি অর্থপ্রদানের অ্যাপ ইনস্টল করার আগে, এন্টারপ্রাইজের অ্যাপটির জন্য একটি লাইসেন্স উপলব্ধ থাকতে হবে। যদি একটি লাইসেন্স পাওয়া যায়, অ্যাপটি ডিভাইসে ইনস্টল করা হয় এবং একটি Entitlements অবজেক্ট তৈরি করা হয়। একটি Entitlements অবজেক্ট একটি ব্যবহারকারীর সাথে একটি লাইসেন্স লিঙ্ক করে এবং অ্যাপের জন্য উপলব্ধ লাইসেন্সের সংখ্যা হ্রাস করে। যদি কোনো লাইসেন্স উপলব্ধ না থাকে, তাহলে অ্যাপ ইনস্টলেশন ব্যর্থ হয় এবং কোনো Entitlements অবজেক্ট তৈরি হয় না।

Grouplicenses এবং Entitlements অবজেক্টগুলি চার্জ ছাড়াই বিতরণ করা অ্যাপ্লিকেশন দ্বারা ব্যবহার করা হয় না।