একটি ডিভাইস পলিসি কন্ট্রোলার তৈরি করুন

এই নির্দেশিকাটি বর্ণনা করে যে কিভাবে একটি Android এন্টারপ্রাইজ স্থাপনায় ডিভাইসের জন্য একটি ডিভাইস নীতি নিয়ন্ত্রক (DPC) বিকাশ করা যায়। একটি DPC অ্যাপ, পূর্বে একটি কাজের নীতি নিয়ন্ত্রক হিসাবে পরিচিত, ডিভাইসগুলিতে স্থানীয় ডিভাইস নীতি এবং সিস্টেম অ্যাপ্লিকেশনগুলি নিয়ন্ত্রণ করে।

ডিপিসি সম্পর্কে

একটি অ্যান্ড্রয়েড এন্টারপ্রাইজ স্থাপনায়, একটি এন্টারপ্রাইজ ব্যবহারকারীর ডিভাইসের বিভিন্ন দিকের উপর নিয়ন্ত্রণ বজায় রাখে, যেমন ব্যবহারকারীর ব্যক্তিগত ডেটা থেকে কাজ-সম্পর্কিত তথ্য বিচ্ছিন্ন করা, পরিবেশের জন্য অনুমোদিত অ্যাপ্লিকেশানগুলি পূর্ব-কনফিগার করা, বা ডিভাইসের ক্ষমতাগুলি অক্ষম করা (উদাহরণস্বরূপ, ক্যামেরা) .

একটি EMM হিসাবে, আপনি একটি DPC অ্যাপ তৈরি করেন যা আপনার গ্রাহকরা আপনার EMM কনসোল এবং সার্ভারের সাথে ব্যবহার করতে পারেন। আপনার গ্রাহক তাদের পরিচালনা করে এমন ব্যবহারকারীর ডিভাইসগুলিতে DPC স্থাপন করে। DPC আপনার EMM কনসোল (এবং সার্ভার) এবং ডিভাইসের মধ্যে সেতু হিসাবে কাজ করে। একজন প্রশাসক ইএমএম কনসোল ব্যবহার করে ডিভাইস সেটিংস এবং অ্যাপ কনফিগার করা সহ বিভিন্ন কাজ সম্পাদন করেন।

DPC যে ডিভাইসে এটি ইনস্টল করা আছে সেখানে কাজের প্রোফাইল তৈরি করে এবং পরিচালনা করে। কাজের প্রোফাইল কাজ-সম্পর্কিত তথ্য এনক্রিপ্ট করে এবং ব্যবহারকারীদের ব্যক্তিগত অ্যাপ এবং ডেটা থেকে আলাদা রাখে। কাজের প্রোফাইল তৈরি করার আগে, ডিপিসি ডিভাইসে ব্যবহারের জন্য একটি পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থাও করতে পারে।

এই নির্দেশিকা আপনাকে দেখায় কিভাবে একটি DPC তৈরি করতে হয় যা কাজের প্রোফাইল তৈরি এবং পরিচালনা করতে পারে।

EMM-এর জন্য DPC সাপোর্ট লাইব্রেরি

EMM-এর জন্য DPC সাপোর্ট লাইব্রেরিতে ইউটিলিটি এবং হেল্পার ক্লাস রয়েছে যা একটি এন্টারপ্রাইজ পরিবেশে অ্যান্ড্রয়েড ডিভাইসগুলির বিধান এবং পরিচালনার সুবিধা দেয়। লাইব্রেরি আপনাকে আপনার DPC অ্যাপের গুরুত্বপূর্ণ বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়:

  • পরিচালিত Google Play অ্যাকাউন্টের বিধান সমর্থন : DPC অ্যাপ থেকে পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থা করার জন্য Google Play এবং Google Play পরিষেবার অ্যাপগুলিকে ন্যূনতম সংস্করণের প্রয়োজনীয়তা পূরণ করতে হবে। যাইহোক, এই অ্যাপগুলি আপডেট করা জটিল হতে পারে। DPC সাপোর্ট লাইব্রেরি এই অ্যাপগুলিকে আপডেট করার যত্ন নেয়, এবং পরিচালিত Google Play অ্যাকাউন্টের প্রভিশনিং প্রক্রিয়ার ভবিষ্যতের আপডেটগুলির সাথে সামঞ্জস্যতা নিশ্চিত করে৷ বিশদ বিবরণের জন্য পরিচালিত Google Play অ্যাকাউন্টের বিধান সমর্থন দেখুন৷
  • পরিচালিত কনফিগারেশন সমর্থন : অনুমোদিত অ্যাপগুলির জন্য পরিচালিত কনফিগারেশনগুলি পরিচালনা করতে প্লে EMM API ব্যবহার করা হল আপনার DPC-তে পরিচালিত কনফিগারেশনগুলি বাস্তবায়নের সবচেয়ে সহজ উপায়৷ DPC সাপোর্ট লাইব্রেরি আপনাকে Google Play-এ আপনার EMM কনসোল ব্যবহার করে অ্যাডমিন দ্বারা সেট করা পরিচালিত কনফিগারেশন (আগে, অ্যাপ সীমাবদ্ধতা) প্রয়োগ করার কাজটি অর্পণ করতে দেয়৷ পরিচালিত কনফিগারেশনগুলি পরিচালনা করতে Play EMM API ব্যবহার করে ইনস্টলেশনের সময় অ্যাপ কনফিগারেশনকে পারমাণবিকভাবে প্রয়োগ করার অনুমতি দেয়। আপনার DPC-তে এই ক্ষমতা কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য কাজের অ্যাপগুলিতে পরিচালিত কনফিগারেশন প্রয়োগ করুন দেখুন।

লাইব্রেরি ডাউনলোড করতে নিচের ধাপগুলো অনুসরণ করুন। এই নির্দেশিকায় বিস্তারিত কাজগুলি DPC সাপোর্ট লাইব্রেরির ব্যবহার অনুমান করে।

DPC সাপোর্ট লাইব্রেরি ডাউনলোড করুন

DPC সাপোর্ট লাইব্রেরি ব্যবহার করতে, Android Enterprise EMM প্রদানকারী সম্প্রদায় থেকে লাইব্রেরিটি ডাউনলোড করুন। আপনাকে অবশ্যই আপনার build.gradle ফাইলে লাইব্রেরি যোগ করতে হবে এবং আপনি যখন আপনার DPC অ্যাপ তৈরি করবেন তখন অন্যান্য নির্ভরতার যত্ন নেবেন। উদাহরণস্বরূপ, লাইব্রেরির জন্য 11.4.0 Google Play Services auth ক্লায়েন্ট লাইব্রেরি প্রয়োজন।

  1. build.gradle ফাইলে লাইব্রেরি যোগ করুন:

    গ্রোভি

    implementation(name:'dpcsupport-yyyymmdd', ext:'aar')
    

    কোটলিন

    implementation(name = "dpcsupport-yyyymmdd", ext = "aar")
    
  2. build.gradle ফাইলে 11.4.0 Google Play Services auth ক্লায়েন্ট লাইব্রেরি যোগ করুন:

    গ্রোভি

    implementation 'com.google.android.gms:play-services-auth:11.4.0'
    

    কোটলিন

    implementation("com.google.android.gms:play-services-auth:11.4.0")
    

লাইব্রেরি চালানোর জন্য নির্দিষ্ট কিছু অনুমতির প্রয়োজন, তাই আপনি Google Play-তে আপলোড করার সময় আপনার DPC অ্যাপের ম্যানিফেস্টে এগুলি যোগ করতে হবে:

  <uses-permission android:name=
      "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
  <uses-permission android:name=
      "android.permission.GET_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.MANAGE_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.WRITE_SYNC_SETTINGS"/>
  <uses-permission android:name=
      "com.google.android.providers.gsf.permission.READ_GSERVICES"/>

এই প্রাথমিক সেটআপ এবং স্থাপনার পদক্ষেপগুলি ছাড়াও, আপনি যে ক্ষমতা প্রয়োগ করতে চান তার উপর নির্ভর করে আপনাকে অবশ্যই আপনার DPC কোডে নির্দিষ্ট লাইব্রেরি কার্যকারিতা শুরু করতে হবে। বিশদ বিবরণ নীচের প্রাসঙ্গিক বিভাগে অন্তর্ভুক্ত করা হয়েছে.

একটি DPC তৈরি করুন

ডিভাইস প্রশাসন অ্যাপ্লিকেশনের জন্য ব্যবহৃত বিদ্যমান মডেলে আপনার DPC তৈরি করুন। বিশেষত, আপনার অ্যাপটিকে অবশ্যই ডিভাইস অ্যাডমিনিস্ট্রেশনে বর্ণিত DeviceAdminReceiver ( android.app.admin প্যাকেজের একটি ক্লাস) সাবক্লাস করতে হবে।

একটি কাজের প্রোফাইল তৈরি করুন

একটি নমুনার জন্য যা দেখায় কিভাবে একটি মৌলিক কাজের প্রোফাইল তৈরি করতে হয়, GitHub-এ BasicManagedProfile দেখুন।

ইতিমধ্যেই একটি ব্যক্তিগত প্রোফাইল আছে এমন একটি ডিভাইসে একটি কাজের প্রোফাইল তৈরি করতে, প্রথমে FEATURE_MANAGED_USERS সিস্টেম বৈশিষ্ট্যের অস্তিত্ব পরীক্ষা করে ডিভাইসটি একটি কাজের প্রোফাইল সমর্থন করতে পারে কিনা তা খুঁজে বের করুন:

কোটলিন

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

জাভা

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

যদি ডিভাইসটি কাজের প্রোফাইল সমর্থন করে, তাহলে একটি ACTION_PROVISION_MANAGED_PROFILE অ্যাকশনের সাথে একটি উদ্দেশ্য পাঠিয়ে একটি কাজের প্রোফাইল তৈরি করুন৷ (কিছু ডকুমেন্টেশনে, ম্যানেজড প্রোফাইল হল একটি সাধারণ শব্দ যার অর্থ এন্টারপ্রাইজে অ্যান্ড্রয়েডের প্রেক্ষাপটে কাজের প্রোফাইলের মতোই।) অতিরিক্ত হিসাবে ডিভাইস অ্যাডমিন প্যাকেজের নাম অন্তর্ভুক্ত করুন:

কোটলিন

val provisioningActivity = getActivity()

// You'll need the package name for the DPC app.
val myDPCPackageName = "com.example.myDPCApp"

// Set up the provisioning intent
val adminComponent = ComponentName(provisioningActivity.applicationContext, MyAdminReceiver::class.java)
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString())
if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE)
    provisioningActivity.finish()
}

জাভা

Activity provisioningActivity = getActivity();
// You'll need the package name for the DPC app.
String myDPCPackageName = "com.example.myDPCApp";
// Set up the provisioning intent
Intent provisioningIntent =
        new Intent("android.app.action.PROVISION_MANAGED_PROFILE");
ComponentName adminComponent = new ComponentName(provisioningActivity.getApplicationContext(), MyAdminReceiver.class);
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString());
if (provisioningIntent.resolveActivity(provisioningActivity.getPackageManager())
         == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE);
    provisioningActivity.finish();
}

সিস্টেম নিম্নলিখিত কাজ করে এই অভিপ্রায়ে সাড়া দেয়:

  • ডিভাইসটি এনক্রিপ্ট করা আছে কিনা তা যাচাই করে। যদি এটি না হয়, সিস্টেমটি ব্যবহারকারীকে এগিয়ে যাওয়ার আগে ডিভাইসটিকে এনক্রিপ্ট করতে অনুরোধ করে৷
  • একটি কাজের প্রোফাইল তৈরি করে।
  • কাজের প্রোফাইল থেকে অপ্রয়োজনীয় অ্যাপ্লিকেশনগুলি সরিয়ে দেয়৷
  • DPC অ্যাপটিকে কাজের প্রোফাইলে অনুলিপি করে এবং DPC কে নিজেই প্রোফাইল মালিক হিসাবে সেট করে।

প্রভিশনিং সফল হয়েছে কিনা তা দেখতে onActivityResult() ওভাররাইড করুন:

কোটলিন

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data)
    }
}

জাভা

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return;
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data);
    }
}

কাজের প্রোফাইল সক্ষম করা শেষ করুন

প্রোফাইলের ব্যবস্থা করা হলে, সিস্টেমটি DPC অ্যাপের DeviceAdminReceiver.onProfileProvisioningComplete() পদ্ধতিতে কল করে। কাজের প্রোফাইল সক্ষম করা শেষ করতে এই কলব্যাক পদ্ধতিটি ওভাররাইড করুন৷

একটি সাধারণ DeviceAdminReceiver.onProfileProvisioningComplete() কলব্যাক বাস্তবায়ন নিম্নলিখিতগুলি করে:

কাজের প্রোফাইল সক্রিয় করুন

একবার আপনি এই কাজগুলি সম্পন্ন করার পরে, কাজের প্রোফাইল সক্রিয় করতে ডিভাইস নীতি পরিচালকের setProfileEnabled() পদ্ধতিতে কল করুন:

কোটলিন

// Get the device policy manager
val myDevicePolicyMgr = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
val componentName = myDeviceAdminReceiver.getComponentName(this)
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile")
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName)

জাভা

// Get the device policy manager
DevicePolicyManager myDevicePolicyMgr =
        (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = myDeviceAdminReceiver.getComponentName(this);
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile");
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName);

ডিভাইস নীতি সেট আপ করুন

DPC অ্যাপটি একটি প্রতিষ্ঠানের প্রয়োজনীয়তা এবং সীমাবদ্ধতা পূরণের জন্য একজন প্রশাসকের দ্বারা সেট করা ডিভাইস নীতিগুলি প্রয়োগ করে৷ উদাহরণস্বরূপ, নিরাপত্তা নীতির প্রয়োজন হতে পারে যে নির্দিষ্ট সংখ্যক ব্যর্থ পাসওয়ার্ড প্রচেষ্টার পরে ডিভাইসগুলি লক করা। DPC বর্তমান নীতিগুলির জন্য EMM কনসোলকে জিজ্ঞাসা করে তারপরে ডিভাইস প্রশাসন API ব্যবহার করে নীতিগুলি প্রয়োগ করে৷

ডিভাইস নীতিগুলি কীভাবে প্রয়োগ করতে হয় সে সম্পর্কে তথ্যের জন্য, নীতিগুলি দেখুন৷

কাজের অ্যাপে পরিচালিত কনফিগারেশন প্রয়োগ করুন

ম্যানেজ করা কনফিগারেশনগুলি আপনাকে আপনার গ্রাহকদের অ্যাপগুলিকে পূর্ব-কনফিগার করার ক্ষমতা প্রদান করতে দেয় যেগুলি তারা স্থাপনের জন্য অনুমোদন করেছে এবং কনফিগারেশন পরিবর্তন করার প্রয়োজন হলে সহজেই সেই অ্যাপগুলিকে আপডেট করতে পারে৷ স্থাপনার আগে একটি অ্যাপ কনফিগার করা নিশ্চিত করে যে সংস্থার নিরাপত্তা এবং অন্যান্য নীতিগুলি লক্ষ্য ডিভাইসে অ্যাপ ইনস্টল করার সময় পূরণ করা হয়েছে।

অ্যাপের ক্ষমতাগুলি অ্যাপ ডেভেলপার দ্বারা একটি XML স্কিমা (পরিচালিত কনফিগারেশন স্কিমা) দ্বারা সংজ্ঞায়িত করা হয় যা Google Play-তে আপলোড করার সময় অ্যাপের সাথে থাকে (অ্যাপ বিকাশকারীরা, বিস্তারিত জানার জন্য সেট আপ পরিচালিত কনফিগারেশন দেখুন)।

আপনি আপনার EMM কনসোলে আপনার গ্রাহক প্রশাসকদের জন্য প্রদর্শন করার জন্য অ্যাপ থেকে এই স্কিমাটি পুনরুদ্ধার করুন, একটি UI প্রদান করুন যাতে স্কিমা প্রদর্শনে সংজ্ঞায়িত বিভিন্ন বিকল্প রয়েছে এবং প্রশাসকদের অ্যাপের সেটিংস প্রি-কনফিগার করতে সক্ষম করে৷ প্রশাসকের দ্বারা সেট করা ফলস্বরূপ পরিচালিত কনফিগারেশন সাধারণত EMM সার্ভারে সংরক্ষিত থাকে যা তারপর Managedconfigurationsfordevice বা Managedconfigurationsforuser সেট করতে প্লে EMM API ব্যবহার করে। বিস্তারিত জানার জন্য Play এর মাধ্যমে পরিচালিত কনফিগারেশন দেখুন।

পরিচালিত কনফিগারেশনগুলি প্লে ইএমএম API (প্রস্তাবিত পদ্ধতি) ব্যবহার করে বা সরাসরি DPC থেকে ( সরাসরি DPC থেকে পরিচালিত কনফিগারেশন প্রয়োগ করুন- এ বর্ণিত) ব্যবহার করে অ্যাপে প্রয়োগ করা যেতে পারে। প্লে ইএমএম এপিআই ব্যবহার করার অনেক সুবিধা রয়েছে, সহজ বাস্তবায়ন সহ কারণ আপনি ডিপিসি কাজগুলিকে সহজ করতে ডিপিসি সাপোর্ট লাইব্রেরি ব্যবহার করতে পারেন। এছাড়াও, প্লে EMM API:

  • যখন একটি নতুন অ্যাপ ইনস্টল করা হয় তখন পরমাণুভাবে কনফিগারেশন সেট করে, এইভাবে ব্যবহারকারী প্রথমবার অ্যাপটি চালু করার সময় অ্যাপটি প্রস্তুত কিনা তা নিশ্চিত করে।
  • আপনাকে প্রতি-ব্যবহারকারীর ভিত্তিতে কনফিগারেশনগুলি পরিচালনা করতে দেয়, যাতে আপনি প্রতি-ডিভাইসের ভিত্তিতে ব্যবস্থা পর্যবেক্ষণ এড়াতে পারেন।

Play EMM API ব্যবহার করে পরিচালিত কনফিগারেশন প্রয়োগ করুন

পরিচালিত কনফিগারেশনের জন্য Play EMM API ব্যবহার করতে, DPC-কে অবশ্যই Google Play-কে কনফিগারেশন সেট করার অনুমতি দিতে হবে। DPC সাপোর্ট লাইব্রেরি Google Play দ্বারা প্রেরিত কনফিগারেশন প্রক্সি করে আপনার জন্য এই কাজটির যত্ন নেয়।

Play EMM API ব্যবহার করতে, DPC সমর্থন লাইব্রেরি ডাউনলোড করুন এবং তারপর আপনার DPC-তে পরিচালিত কনফিগারেশন সমর্থন সক্ষম করুন৷

আপনার DPC-তে পরিচালিত কনফিগারেশন সমর্থন সক্ষম করুন৷

আপনার ডিপিসিতে এই ক্লাসটি আমদানি করুন:

com.google.android.apps.work.dpcsupport.ManagedConfigurationsSupport

পরিচালিত কনফিগারেশন লাইব্রেরি আরম্ভ করুন। এই উদাহরণে, "অ্যাডমিন" হল DeviceAdminReceiver- এর ComponentName।

কোটলিন

var managedConfigurationsSupport = ManagedConfigurationsSupport(context, admin)

জাভা

ManagedConfigurationsSupport managedConfigurationsSupport =
    new ManagedConfigurationsSupport(context, admin);

পরিচালিত কনফিগারেশন সক্ষম করুন:

কোটলিন

managedConfigurationsSupport.enableManagedConfigurations()

জাভা

managedConfigurationsSupport.enableManagedConfigurations();

এই লাইব্রেরিটি আপনার DPC-তে আরম্ভ করা হলে, আপনি সরাসরি DPC-তে এই কাজগুলি কোড করার পরিবর্তে অনুমোদিত অ্যাপগুলিতে পরিচালিত কনফিগারেশনগুলি প্রয়োগ করতে আপনার EMM কনসোল এবং সার্ভারে Google Play EMM API ব্যবহার করতে পারেন৷ বিস্তারিত জানার জন্য Play এর মাধ্যমে পরিচালিত কনফিগারেশন দেখুন।

সরাসরি DPC থেকে পরিচালিত কনফিগারেশন প্রয়োগ করুন

DPC থেকে সরাসরি একটি অ্যাপের কনফিগারেশন সেটিংস পরিবর্তন করতে, DevicePolicyManager.setApplicationRestrictions() পদ্ধতিতে কল করুন এবং DPC অ্যাপের DeviceAdminReceiver , লক্ষ্য অ্যাপের প্যাকেজ নাম এবং অ্যাডমিন দ্বারা সেট করা অ্যাপের পরিচালিত কনফিগারেশন সমন্বিত বান্ডেলের জন্য প্যারামিটার পাস করুন। দেখুন কিভাবে আপনার DPC এবং EMM কনসোল ইন্টারঅ্যাক্ট করে এবং বিস্তারিত জানার জন্য পরিচালিত কনফিগারেশন সেট আপ করে । যাইহোক, মনে রাখবেন যে পরিচালিত কনফিগারেশনগুলি প্রয়োগ করার জন্য এই বিকল্প পদ্ধতিটি পরিচালিত Google Play অ্যাকাউন্টের স্থাপনায় সুপারিশ করা হয় না।

পরিচালিত Google Play অ্যাকাউন্ট বিধান সমর্থন

DPC সাপোর্ট লাইব্রেরিতে পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থা করার জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। এই সমর্থনটি ব্যবহার করার জন্য, আপনাকে প্রথমে লাইব্রেরি শুরু করতে হবে এবং তারপরে আপনি কাজের পরিবেশ নিশ্চিত করতে পারেন এবং একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করতে পারেন

আপনার DPC-তে পরিচালিত Google Play অ্যাকাউন্ট সমর্থন শুরু করুন৷

আপনার ডিপিসিতে এই ক্লাসটি আমদানি করুন:

com.google.android.apps.work.dpcsupport.AndroidForWorkAccountSupport

প্রভিশনিং কম্প্যাটিবিলিটি লাইব্রেরি শুরু করুন। এই উদাহরণে, "অ্যাডমিন" হল DeviceAdminReceiver এর ComponentName

কোটলিন

var androidForWorkAccountSupport = AndroidForWorkAccountSupport(context, admin)

জাভা

AndroidForWorkAccountSupport androidForWorkAccountSupport =
    new AndroidForWorkAccountSupport(context, admin);

পরিচালিত Google Play অ্যাকাউন্টগুলির জন্য কাজের পরিবেশ নিশ্চিত করুন

DPC প্রোফাইল মালিক মোড ( ACTION_PROVISION_MANAGED_PROFILE ) বা ডিভাইস মালিক মোডে ( ACTION_PROVISION_MANAGED_DEVICE ) ডিভাইসের ব্যবস্থা করার পরে, নিশ্চিত করুন যে ডিভাইসটি কল করে পরিচালিত Google Play অ্যাকাউন্টগুলিকে সমর্থন করতে পারে:

কোটলিন

androidForWorkAccountSupport.ensureWorkingEnvironment(callback)

জাভা

androidForWorkAccountSupport.ensureWorkingEnvironment(callback);

কলব্যাক এই প্রক্রিয়ার সাফল্য বা ব্যর্থতার রিপোর্ট করে। কলব্যাক সফলভাবে ফিরে আসলে, একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করা যেতে পারে। যদি কলব্যাক একটি ত্রুটি রিপোর্ট করে, ব্যবহারকারীকে নিশ্চিত করুন যে ডিভাইসটিতে একটি নেটওয়ার্ক সংযোগ রয়েছে (উদাহরণস্বরূপ, যদি ডাউনলোড ব্যর্থ হয়)। অন্য ক্ষেত্রে, Google-এ ব্যর্থতার রিপোর্ট করুন।

কোটলিন

object : WorkingEnvironmentCallback() {
    override fun onSuccess() {
        // Can now provision the managed Google Play Account
    }
    override fun onFailure(error: Error) {
        // Notify user, handle error (check network connection)
    }
}

জাভা

new WorkingEnvironmentCallback() {
    @Override
    public void onSuccess() {
        // Can now provision the managed Google Play Account
    }

    @Override
    public void onFailure(Error error) {
        // Notify user, handle error (check network connection)
    }
}

একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করুন

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

কোটলিন

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback)

জাভা

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
  • token — Google Play EMM API Users.generateAuthenticationToken() কল দ্বারা উত্পন্ন ব্যবহারকারী প্রমাণীকরণ টোকেন৷
  • accountAddedCallback — ডিভাইসে সফলভাবে যোগ করা পরিচালিত Google Play অ্যাকাউন্ট ফিরিয়ে দেয়। এই কলব্যাকে onAccountReady() এবং onFailure() পদ্ধতি অন্তর্ভুক্ত করা উচিত।

কোটলিন

val workAccountAddedCallback = object : WorkAccountAddedCallback() {
    override fun onAccountReady(account: Account, deviceHint: String) {
        // Device account was successfully added to the device
        // and is ready to be used.
    }

    override fun onFailure(error: Error) {
        // The account was not successfully added. Check that the token
        // provided was valid (it expires after a certain period of time).
    }
}

জাভা

WorkAccountAddedCallback workAccountAddedCallback =
    new WorkAccountAddedCallback() {
        @Override
        public void onAccountReady(Account account, String deviceHint) {
            // Device account was successfully added to the device
            // and is ready to be used.
        }

        @Override
        public void onFailure(Error error) {
            // The account was not successfully added. Check that the token
            // provided was valid (it expires after a certain period of time).
        }
};
  • ডিভাইস অ্যাডমিনিস্ট্রেশন এপিআই সম্পর্কে আরও জানতে, ডিভাইস অ্যাডমিনিস্ট্রেশন দেখুন।
  • অ্যান্ড্রয়েড এন্টারপ্রাইজ প্রভিশনিং পদ্ধতি সম্পর্কে জানতে, অ্যান্ড্রয়েড এন্টারপ্রাইজ ডেভেলপারের গাইডে প্রোভিশন ডিভাইস দেখুন।
  • একটি GitHub নমুনার জন্য যা দেখায় কিভাবে একটি মৌলিক কাজের প্রোফাইল তৈরি করতে হয়, BasicManagedProfile দেখুন।
  • একটি GitHub নমুনার জন্য যা প্রদর্শন করে যে কীভাবে প্রোফাইল মালিক হিসাবে অন্যান্য অ্যাপে কনফিগারেশন সেট করতে হয়, দেখুন AppRestrictionEnforcer
,

এই নির্দেশিকাটি বর্ণনা করে যে কিভাবে একটি Android এন্টারপ্রাইজ স্থাপনায় ডিভাইসের জন্য একটি ডিভাইস নীতি নিয়ন্ত্রক (DPC) বিকাশ করা যায়। একটি DPC অ্যাপ, পূর্বে একটি কাজের নীতি নিয়ন্ত্রক হিসাবে পরিচিত, ডিভাইসগুলিতে স্থানীয় ডিভাইস নীতি এবং সিস্টেম অ্যাপ্লিকেশনগুলি নিয়ন্ত্রণ করে।

ডিপিসি সম্পর্কে

একটি অ্যান্ড্রয়েড এন্টারপ্রাইজ স্থাপনায়, একটি এন্টারপ্রাইজ ব্যবহারকারীর ডিভাইসের বিভিন্ন দিকের উপর নিয়ন্ত্রণ বজায় রাখে, যেমন ব্যবহারকারীর ব্যক্তিগত ডেটা থেকে কাজ-সম্পর্কিত তথ্য বিচ্ছিন্ন করা, পরিবেশের জন্য অনুমোদিত অ্যাপ্লিকেশানগুলি পূর্ব-কনফিগার করা, বা ডিভাইসের ক্ষমতাগুলি অক্ষম করা (উদাহরণস্বরূপ, ক্যামেরা) .

একটি EMM হিসাবে, আপনি একটি DPC অ্যাপ তৈরি করেন যা আপনার গ্রাহকরা আপনার EMM কনসোল এবং সার্ভারের সাথে ব্যবহার করতে পারেন। আপনার গ্রাহক তাদের পরিচালনা করে এমন ব্যবহারকারীর ডিভাইসগুলিতে DPC স্থাপন করে। DPC আপনার EMM কনসোল (এবং সার্ভার) এবং ডিভাইসের মধ্যে সেতু হিসাবে কাজ করে। একজন প্রশাসক ইএমএম কনসোল ব্যবহার করে ডিভাইস সেটিংস এবং অ্যাপ কনফিগার করা সহ বিভিন্ন কাজ সম্পাদন করেন।

DPC যে ডিভাইসে এটি ইনস্টল করা আছে সেখানে কাজের প্রোফাইল তৈরি করে এবং পরিচালনা করে। কাজের প্রোফাইল কাজ-সম্পর্কিত তথ্য এনক্রিপ্ট করে এবং ব্যবহারকারীদের ব্যক্তিগত অ্যাপ এবং ডেটা থেকে আলাদা রাখে। কাজের প্রোফাইল তৈরি করার আগে, ডিপিসি ডিভাইসে ব্যবহারের জন্য একটি পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থাও করতে পারে।

এই নির্দেশিকা আপনাকে দেখায় কিভাবে একটি DPC তৈরি করতে হয় যা কাজের প্রোফাইল তৈরি এবং পরিচালনা করতে পারে।

EMM-এর জন্য DPC সাপোর্ট লাইব্রেরি

EMM-এর জন্য DPC সাপোর্ট লাইব্রেরিতে ইউটিলিটি এবং হেল্পার ক্লাস রয়েছে যা একটি এন্টারপ্রাইজ পরিবেশে অ্যান্ড্রয়েড ডিভাইসগুলির বিধান এবং পরিচালনার সুবিধা দেয়। লাইব্রেরি আপনাকে আপনার DPC অ্যাপের গুরুত্বপূর্ণ বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়:

  • পরিচালিত Google Play অ্যাকাউন্টের বিধান সমর্থন : DPC অ্যাপ থেকে পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থা করার জন্য Google Play এবং Google Play পরিষেবার অ্যাপগুলিকে ন্যূনতম সংস্করণের প্রয়োজনীয়তা পূরণ করতে হবে। যাইহোক, এই অ্যাপগুলি আপডেট করা জটিল হতে পারে। DPC সাপোর্ট লাইব্রেরি এই অ্যাপগুলিকে আপডেট করার যত্ন নেয়, এবং পরিচালিত Google Play অ্যাকাউন্টের প্রভিশনিং প্রক্রিয়ার ভবিষ্যতের আপডেটগুলির সাথে সামঞ্জস্যতা নিশ্চিত করে৷ বিশদ বিবরণের জন্য পরিচালিত Google Play অ্যাকাউন্টের বিধান সমর্থন দেখুন৷
  • পরিচালিত কনফিগারেশন সমর্থন : অনুমোদিত অ্যাপগুলির জন্য পরিচালিত কনফিগারেশনগুলি পরিচালনা করতে প্লে EMM API ব্যবহার করা হল আপনার DPC-তে পরিচালিত কনফিগারেশনগুলি বাস্তবায়নের সবচেয়ে সহজ উপায়৷ DPC সাপোর্ট লাইব্রেরি আপনাকে Google Play-এ আপনার EMM কনসোল ব্যবহার করে অ্যাডমিন দ্বারা সেট করা পরিচালিত কনফিগারেশন (আগে, অ্যাপ সীমাবদ্ধতা) প্রয়োগ করার কাজটি অর্পণ করতে দেয়৷ পরিচালিত কনফিগারেশনগুলি পরিচালনা করতে Play EMM API ব্যবহার করে ইনস্টলেশনের সময় অ্যাপ কনফিগারেশনকে পারমাণবিকভাবে প্রয়োগ করার অনুমতি দেয়। আপনার DPC-তে এই ক্ষমতা কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য কাজের অ্যাপগুলিতে পরিচালিত কনফিগারেশন প্রয়োগ করুন দেখুন।

লাইব্রেরি ডাউনলোড করতে নিচের ধাপগুলো অনুসরণ করুন। এই নির্দেশিকায় বিস্তারিত কাজগুলি DPC সাপোর্ট লাইব্রেরির ব্যবহার অনুমান করে।

DPC সাপোর্ট লাইব্রেরি ডাউনলোড করুন

DPC সাপোর্ট লাইব্রেরি ব্যবহার করতে, Android Enterprise EMM প্রদানকারী সম্প্রদায় থেকে লাইব্রেরিটি ডাউনলোড করুন। আপনাকে অবশ্যই আপনার build.gradle ফাইলে লাইব্রেরি যোগ করতে হবে এবং আপনি যখন আপনার DPC অ্যাপ তৈরি করবেন তখন অন্যান্য নির্ভরতার যত্ন নেবেন। উদাহরণস্বরূপ, লাইব্রেরির জন্য 11.4.0 Google Play Services auth ক্লায়েন্ট লাইব্রেরি প্রয়োজন।

  1. build.gradle ফাইলে লাইব্রেরি যোগ করুন:

    গ্রোভি

    implementation(name:'dpcsupport-yyyymmdd', ext:'aar')
    

    কোটলিন

    implementation(name = "dpcsupport-yyyymmdd", ext = "aar")
    
  2. build.gradle ফাইলে 11.4.0 Google Play Services auth ক্লায়েন্ট লাইব্রেরি যোগ করুন:

    গ্রোভি

    implementation 'com.google.android.gms:play-services-auth:11.4.0'
    

    কোটলিন

    implementation("com.google.android.gms:play-services-auth:11.4.0")
    

লাইব্রেরি চালানোর জন্য নির্দিষ্ট কিছু অনুমতির প্রয়োজন, তাই আপনি Google Play-তে আপলোড করার সময় আপনার DPC অ্যাপের ম্যানিফেস্টে এগুলি যোগ করতে হবে:

  <uses-permission android:name=
      "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
  <uses-permission android:name=
      "android.permission.GET_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.MANAGE_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.WRITE_SYNC_SETTINGS"/>
  <uses-permission android:name=
      "com.google.android.providers.gsf.permission.READ_GSERVICES"/>

এই প্রাথমিক সেটআপ এবং স্থাপনার পদক্ষেপগুলি ছাড়াও, আপনি যে ক্ষমতা প্রয়োগ করতে চান তার উপর নির্ভর করে আপনাকে অবশ্যই আপনার DPC কোডে নির্দিষ্ট লাইব্রেরি কার্যকারিতা শুরু করতে হবে। বিশদ বিবরণ নীচের প্রাসঙ্গিক বিভাগে অন্তর্ভুক্ত করা হয়েছে.

একটি DPC তৈরি করুন

ডিভাইস প্রশাসন অ্যাপ্লিকেশনের জন্য ব্যবহৃত বিদ্যমান মডেলে আপনার DPC তৈরি করুন। বিশেষত, আপনার অ্যাপটিকে অবশ্যই ডিভাইস অ্যাডমিনিস্ট্রেশনে বর্ণিত DeviceAdminReceiver ( android.app.admin প্যাকেজের একটি ক্লাস) সাবক্লাস করতে হবে।

একটি কাজের প্রোফাইল তৈরি করুন

একটি নমুনার জন্য যা দেখায় কিভাবে একটি মৌলিক কাজের প্রোফাইল তৈরি করতে হয়, GitHub-এ BasicManagedProfile দেখুন।

ইতিমধ্যেই একটি ব্যক্তিগত প্রোফাইল আছে এমন একটি ডিভাইসে একটি কাজের প্রোফাইল তৈরি করতে, প্রথমে FEATURE_MANAGED_USERS সিস্টেম বৈশিষ্ট্যের অস্তিত্ব পরীক্ষা করে ডিভাইসটি একটি কাজের প্রোফাইল সমর্থন করতে পারে কিনা তা খুঁজে বের করুন:

কোটলিন

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

জাভা

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

যদি ডিভাইসটি কাজের প্রোফাইল সমর্থন করে, তাহলে একটি ACTION_PROVISION_MANAGED_PROFILE অ্যাকশনের সাথে একটি উদ্দেশ্য পাঠিয়ে একটি কাজের প্রোফাইল তৈরি করুন৷ (কিছু ডকুমেন্টেশনে, ম্যানেজড প্রোফাইল হল একটি সাধারণ শব্দ যার অর্থ এন্টারপ্রাইজে অ্যান্ড্রয়েডের প্রেক্ষাপটে কাজের প্রোফাইলের মতোই।) অতিরিক্ত হিসাবে ডিভাইস অ্যাডমিন প্যাকেজের নাম অন্তর্ভুক্ত করুন:

কোটলিন

val provisioningActivity = getActivity()

// You'll need the package name for the DPC app.
val myDPCPackageName = "com.example.myDPCApp"

// Set up the provisioning intent
val adminComponent = ComponentName(provisioningActivity.applicationContext, MyAdminReceiver::class.java)
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString())
if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE)
    provisioningActivity.finish()
}

জাভা

Activity provisioningActivity = getActivity();
// You'll need the package name for the DPC app.
String myDPCPackageName = "com.example.myDPCApp";
// Set up the provisioning intent
Intent provisioningIntent =
        new Intent("android.app.action.PROVISION_MANAGED_PROFILE");
ComponentName adminComponent = new ComponentName(provisioningActivity.getApplicationContext(), MyAdminReceiver.class);
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString());
if (provisioningIntent.resolveActivity(provisioningActivity.getPackageManager())
         == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE);
    provisioningActivity.finish();
}

সিস্টেম নিম্নলিখিত কাজ করে এই অভিপ্রায়ে সাড়া দেয়:

  • ডিভাইসটি এনক্রিপ্ট করা আছে কিনা তা যাচাই করে। যদি এটি না হয়, সিস্টেমটি ব্যবহারকারীকে এগিয়ে যাওয়ার আগে ডিভাইসটিকে এনক্রিপ্ট করতে অনুরোধ করে৷
  • একটি কাজের প্রোফাইল তৈরি করে।
  • কাজের প্রোফাইল থেকে অপ্রয়োজনীয় অ্যাপ্লিকেশনগুলি সরিয়ে দেয়৷
  • DPC অ্যাপটিকে কাজের প্রোফাইলে অনুলিপি করে এবং DPC কে নিজেই প্রোফাইল মালিক হিসাবে সেট করে।

প্রভিশনিং সফল হয়েছে কিনা তা দেখতে onActivityResult() ওভাররাইড করুন:

কোটলিন

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data)
    }
}

জাভা

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return;
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data);
    }
}

কাজের প্রোফাইল সক্ষম করা শেষ করুন

প্রোফাইলের ব্যবস্থা করা হলে, সিস্টেমটি DPC অ্যাপের DeviceAdminReceiver.onProfileProvisioningComplete() পদ্ধতিতে কল করে। কাজের প্রোফাইল সক্ষম করা শেষ করতে এই কলব্যাক পদ্ধতিটি ওভাররাইড করুন৷

একটি সাধারণ DeviceAdminReceiver.onProfileProvisioningComplete() কলব্যাক বাস্তবায়ন নিম্নলিখিতগুলি করে:

কাজের প্রোফাইল সক্রিয় করুন

একবার আপনি এই কাজগুলি সম্পন্ন করার পরে, কাজের প্রোফাইল সক্রিয় করতে ডিভাইস নীতি পরিচালকের setProfileEnabled() পদ্ধতিতে কল করুন:

কোটলিন

// Get the device policy manager
val myDevicePolicyMgr = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
val componentName = myDeviceAdminReceiver.getComponentName(this)
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile")
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName)

জাভা

// Get the device policy manager
DevicePolicyManager myDevicePolicyMgr =
        (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = myDeviceAdminReceiver.getComponentName(this);
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile");
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName);

ডিভাইস নীতি সেট আপ করুন

DPC অ্যাপটি একটি প্রতিষ্ঠানের প্রয়োজনীয়তা এবং সীমাবদ্ধতা পূরণের জন্য একজন প্রশাসকের দ্বারা সেট করা ডিভাইস নীতিগুলি প্রয়োগ করে৷ উদাহরণস্বরূপ, নিরাপত্তা নীতির প্রয়োজন হতে পারে যে নির্দিষ্ট সংখ্যক ব্যর্থ পাসওয়ার্ড প্রচেষ্টার পরে ডিভাইসগুলি লক করা। DPC বর্তমান নীতিগুলির জন্য EMM কনসোলকে জিজ্ঞাসা করে তারপরে ডিভাইস প্রশাসন API ব্যবহার করে নীতিগুলি প্রয়োগ করে৷

ডিভাইস নীতিগুলি কীভাবে প্রয়োগ করতে হয় সে সম্পর্কে তথ্যের জন্য, নীতিগুলি দেখুন৷

কাজের অ্যাপে পরিচালিত কনফিগারেশন প্রয়োগ করুন

ম্যানেজ করা কনফিগারেশনগুলি আপনাকে আপনার গ্রাহকদের অ্যাপগুলিকে পূর্ব-কনফিগার করার ক্ষমতা প্রদান করতে দেয় যেগুলি তারা স্থাপনের জন্য অনুমোদন করেছে এবং কনফিগারেশন পরিবর্তন করার প্রয়োজন হলে সহজেই সেই অ্যাপগুলিকে আপডেট করতে পারে৷ স্থাপনার আগে একটি অ্যাপ কনফিগার করা নিশ্চিত করে যে সংস্থার নিরাপত্তা এবং অন্যান্য নীতিগুলি লক্ষ্য ডিভাইসে অ্যাপ ইনস্টল করার সময় পূরণ করা হয়েছে।

অ্যাপের ক্ষমতাগুলি অ্যাপ ডেভেলপার দ্বারা একটি XML স্কিমা (পরিচালিত কনফিগারেশন স্কিমা) দ্বারা সংজ্ঞায়িত করা হয় যা Google Play-তে আপলোড করার সময় অ্যাপের সাথে থাকে (অ্যাপ বিকাশকারীরা, বিস্তারিত জানার জন্য সেট আপ পরিচালিত কনফিগারেশন দেখুন)।

আপনি আপনার EMM কনসোলে আপনার গ্রাহক প্রশাসকদের জন্য প্রদর্শন করার জন্য অ্যাপ থেকে এই স্কিমাটি পুনরুদ্ধার করুন, একটি UI প্রদান করুন যাতে স্কিমা প্রদর্শনে সংজ্ঞায়িত বিভিন্ন বিকল্প রয়েছে এবং প্রশাসকদের অ্যাপের সেটিংস প্রি-কনফিগার করতে সক্ষম করে৷ প্রশাসকের দ্বারা সেট করা ফলস্বরূপ পরিচালিত কনফিগারেশন সাধারণত EMM সার্ভারে সংরক্ষিত থাকে যা তারপর Managedconfigurationsfordevice বা Managedconfigurationsforuser সেট করতে প্লে EMM API ব্যবহার করে। বিস্তারিত জানার জন্য Play এর মাধ্যমে পরিচালিত কনফিগারেশন দেখুন।

পরিচালিত কনফিগারেশনগুলি প্লে ইএমএম API (প্রস্তাবিত পদ্ধতি) ব্যবহার করে বা সরাসরি DPC থেকে ( সরাসরি DPC থেকে পরিচালিত কনফিগারেশন প্রয়োগ করুন- এ বর্ণিত) ব্যবহার করে অ্যাপে প্রয়োগ করা যেতে পারে। প্লে ইএমএম এপিআই ব্যবহার করার অনেক সুবিধা রয়েছে, সহজ বাস্তবায়ন সহ কারণ আপনি ডিপিসি কাজগুলিকে সহজ করতে ডিপিসি সাপোর্ট লাইব্রেরি ব্যবহার করতে পারেন। এছাড়াও, প্লে EMM API:

  • যখন একটি নতুন অ্যাপ ইনস্টল করা হয় তখন পরমাণুভাবে কনফিগারেশন সেট করে, এইভাবে ব্যবহারকারী প্রথমবার অ্যাপটি চালু করার সময় অ্যাপটি প্রস্তুত কিনা তা নিশ্চিত করে।
  • আপনাকে প্রতি-ব্যবহারকারীর ভিত্তিতে কনফিগারেশনগুলি পরিচালনা করতে দেয়, যাতে আপনি প্রতি-ডিভাইসের ভিত্তিতে ব্যবস্থা পর্যবেক্ষণ এড়াতে পারেন।

Play EMM API ব্যবহার করে পরিচালিত কনফিগারেশন প্রয়োগ করুন

পরিচালিত কনফিগারেশনের জন্য Play EMM API ব্যবহার করতে, DPC-কে অবশ্যই Google Play-কে কনফিগারেশন সেট করার অনুমতি দিতে হবে। DPC সাপোর্ট লাইব্রেরি Google Play দ্বারা প্রেরিত কনফিগারেশন প্রক্সি করে আপনার জন্য এই কাজটির যত্ন নেয়।

Play EMM API ব্যবহার করতে, DPC সমর্থন লাইব্রেরি ডাউনলোড করুন এবং তারপর আপনার DPC-তে পরিচালিত কনফিগারেশন সমর্থন সক্ষম করুন৷

আপনার DPC-তে পরিচালিত কনফিগারেশন সমর্থন সক্ষম করুন৷

আপনার ডিপিসিতে এই ক্লাসটি আমদানি করুন:

com.google.android.apps.work.dpcsupport.ManagedConfigurationsSupport

পরিচালিত কনফিগারেশন লাইব্রেরি আরম্ভ করুন। এই উদাহরণে, "অ্যাডমিন" হল DeviceAdminReceiver- এর ComponentName।

কোটলিন

var managedConfigurationsSupport = ManagedConfigurationsSupport(context, admin)

জাভা

ManagedConfigurationsSupport managedConfigurationsSupport =
    new ManagedConfigurationsSupport(context, admin);

পরিচালিত কনফিগারেশন সক্ষম করুন:

কোটলিন

managedConfigurationsSupport.enableManagedConfigurations()

জাভা

managedConfigurationsSupport.enableManagedConfigurations();

এই লাইব্রেরিটি আপনার DPC-তে আরম্ভ করা হলে, আপনি সরাসরি DPC-তে এই কাজগুলি কোড করার পরিবর্তে অনুমোদিত অ্যাপগুলিতে পরিচালিত কনফিগারেশনগুলি প্রয়োগ করতে আপনার EMM কনসোল এবং সার্ভারে Google Play EMM API ব্যবহার করতে পারেন৷ বিস্তারিত জানার জন্য Play এর মাধ্যমে পরিচালিত কনফিগারেশন দেখুন।

সরাসরি DPC থেকে পরিচালিত কনফিগারেশন প্রয়োগ করুন

DPC থেকে সরাসরি একটি অ্যাপের কনফিগারেশন সেটিংস পরিবর্তন করতে, DevicePolicyManager.setApplicationRestrictions() পদ্ধতিতে কল করুন এবং DPC অ্যাপের DeviceAdminReceiver , লক্ষ্য অ্যাপের প্যাকেজ নাম এবং অ্যাডমিন দ্বারা সেট করা অ্যাপের পরিচালিত কনফিগারেশন সমন্বিত বান্ডেলের জন্য প্যারামিটার পাস করুন। দেখুন কিভাবে আপনার DPC এবং EMM কনসোল ইন্টারঅ্যাক্ট করে এবং বিস্তারিত জানার জন্য পরিচালিত কনফিগারেশন সেট আপ করে । যাইহোক, মনে রাখবেন যে পরিচালিত কনফিগারেশনগুলি প্রয়োগ করার জন্য এই বিকল্প পদ্ধতিটি পরিচালিত Google Play অ্যাকাউন্টের স্থাপনায় সুপারিশ করা হয় না।

পরিচালিত Google Play অ্যাকাউন্ট বিধান সমর্থন

DPC সাপোর্ট লাইব্রেরিতে পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থা করার জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। এই সমর্থনটি ব্যবহার করার জন্য, আপনাকে প্রথমে লাইব্রেরি শুরু করতে হবে এবং তারপরে আপনি কাজের পরিবেশ নিশ্চিত করতে পারেন এবং একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করতে পারেন

আপনার DPC-তে পরিচালিত Google Play অ্যাকাউন্ট সমর্থন শুরু করুন৷

আপনার ডিপিসিতে এই ক্লাসটি আমদানি করুন:

com.google.android.apps.work.dpcsupport.AndroidForWorkAccountSupport

প্রভিশনিং কম্প্যাটিবিলিটি লাইব্রেরি শুরু করুন। এই উদাহরণে, "অ্যাডমিন" হল DeviceAdminReceiver এর ComponentName

কোটলিন

var androidForWorkAccountSupport = AndroidForWorkAccountSupport(context, admin)

জাভা

AndroidForWorkAccountSupport androidForWorkAccountSupport =
    new AndroidForWorkAccountSupport(context, admin);

পরিচালিত Google Play অ্যাকাউন্টগুলির জন্য কাজের পরিবেশ নিশ্চিত করুন

DPC প্রোফাইল মালিক মোড ( ACTION_PROVISION_MANAGED_PROFILE ) বা ডিভাইস মালিক মোডে ( ACTION_PROVISION_MANAGED_DEVICE ) ডিভাইসের ব্যবস্থা করার পরে, নিশ্চিত করুন যে ডিভাইসটি কল করে পরিচালিত Google Play অ্যাকাউন্টগুলিকে সমর্থন করতে পারে:

কোটলিন

androidForWorkAccountSupport.ensureWorkingEnvironment(callback)

জাভা

androidForWorkAccountSupport.ensureWorkingEnvironment(callback);

কলব্যাক এই প্রক্রিয়ার সাফল্য বা ব্যর্থতার রিপোর্ট করে। কলব্যাক সফলভাবে ফিরে আসলে, একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করা যেতে পারে। যদি কলব্যাক একটি ত্রুটি রিপোর্ট করে, ব্যবহারকারীকে নিশ্চিত করুন যে ডিভাইসটিতে একটি নেটওয়ার্ক সংযোগ রয়েছে (উদাহরণস্বরূপ, যদি ডাউনলোড ব্যর্থ হয়)। অন্য ক্ষেত্রে, Google-এ ব্যর্থতার রিপোর্ট করুন।

কোটলিন

object : WorkingEnvironmentCallback() {
    override fun onSuccess() {
        // Can now provision the managed Google Play Account
    }
    override fun onFailure(error: Error) {
        // Notify user, handle error (check network connection)
    }
}

জাভা

new WorkingEnvironmentCallback() {
    @Override
    public void onSuccess() {
        // Can now provision the managed Google Play Account
    }

    @Override
    public void onFailure(Error error) {
        // Notify user, handle error (check network connection)
    }
}

একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করুন

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

কোটলিন

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback)

জাভা

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
  • token — Google Play EMM API Users.generateAuthenticationToken() কল দ্বারা উত্পন্ন ব্যবহারকারী প্রমাণীকরণ টোকেন৷
  • accountAddedCallback — ডিভাইসে সফলভাবে যোগ করা পরিচালিত Google Play অ্যাকাউন্ট ফিরিয়ে দেয়। এই কলব্যাকে onAccountReady() এবং onFailure() পদ্ধতি অন্তর্ভুক্ত করা উচিত।

কোটলিন

val workAccountAddedCallback = object : WorkAccountAddedCallback() {
    override fun onAccountReady(account: Account, deviceHint: String) {
        // Device account was successfully added to the device
        // and is ready to be used.
    }

    override fun onFailure(error: Error) {
        // The account was not successfully added. Check that the token
        // provided was valid (it expires after a certain period of time).
    }
}

জাভা

WorkAccountAddedCallback workAccountAddedCallback =
    new WorkAccountAddedCallback() {
        @Override
        public void onAccountReady(Account account, String deviceHint) {
            // Device account was successfully added to the device
            // and is ready to be used.
        }

        @Override
        public void onFailure(Error error) {
            // The account was not successfully added. Check that the token
            // provided was valid (it expires after a certain period of time).
        }
};
  • ডিভাইস অ্যাডমিনিস্ট্রেশন এপিআই সম্পর্কে আরও জানতে, ডিভাইস অ্যাডমিনিস্ট্রেশন দেখুন।
  • অ্যান্ড্রয়েড এন্টারপ্রাইজ প্রভিশনিং পদ্ধতি সম্পর্কে জানতে, অ্যান্ড্রয়েড এন্টারপ্রাইজ ডেভেলপারের গাইডে প্রোভিশন ডিভাইস দেখুন।
  • একটি GitHub নমুনার জন্য যা দেখায় কিভাবে একটি মৌলিক কাজের প্রোফাইল তৈরি করতে হয়, BasicManagedProfile দেখুন।
  • একটি GitHub নমুনার জন্য যা প্রদর্শন করে যে কীভাবে প্রোফাইল মালিক হিসাবে অন্যান্য অ্যাপে কনফিগারেশন সেট করতে হয়, দেখুন AppRestrictionEnforcer
,

এই নির্দেশিকাটি বর্ণনা করে যে কিভাবে একটি Android এন্টারপ্রাইজ স্থাপনায় ডিভাইসের জন্য একটি ডিভাইস নীতি নিয়ন্ত্রক (DPC) বিকাশ করা যায়। একটি DPC অ্যাপ, পূর্বে একটি কাজের নীতি নিয়ন্ত্রক হিসাবে পরিচিত, ডিভাইসগুলিতে স্থানীয় ডিভাইস নীতি এবং সিস্টেম অ্যাপ্লিকেশনগুলি নিয়ন্ত্রণ করে।

ডিপিসি সম্পর্কে

একটি অ্যান্ড্রয়েড এন্টারপ্রাইজ স্থাপনায়, একটি এন্টারপ্রাইজ ব্যবহারকারীর ডিভাইসের বিভিন্ন দিকের উপর নিয়ন্ত্রণ বজায় রাখে, যেমন ব্যবহারকারীর ব্যক্তিগত ডেটা থেকে কাজ-সম্পর্কিত তথ্য বিচ্ছিন্ন করা, পরিবেশের জন্য অনুমোদিত অ্যাপ্লিকেশানগুলি পূর্ব-কনফিগার করা, বা ডিভাইসের ক্ষমতাগুলি অক্ষম করা (উদাহরণস্বরূপ, ক্যামেরা) .

একটি EMM হিসাবে, আপনি একটি DPC অ্যাপ তৈরি করেন যা আপনার গ্রাহকরা আপনার EMM কনসোল এবং সার্ভারের সাথে ব্যবহার করতে পারেন। আপনার গ্রাহক তাদের পরিচালনা করে এমন ব্যবহারকারীর ডিভাইসগুলিতে DPC স্থাপন করে। DPC আপনার EMM কনসোল (এবং সার্ভার) এবং ডিভাইসের মধ্যে সেতু হিসাবে কাজ করে। একজন প্রশাসক ইএমএম কনসোল ব্যবহার করে ডিভাইস সেটিংস এবং অ্যাপ কনফিগার করা সহ বিভিন্ন কাজ সম্পাদন করেন।

DPC যে ডিভাইসে এটি ইনস্টল করা আছে সেখানে কাজের প্রোফাইল তৈরি করে এবং পরিচালনা করে। কাজের প্রোফাইল কাজ-সম্পর্কিত তথ্য এনক্রিপ্ট করে এবং ব্যবহারকারীদের ব্যক্তিগত অ্যাপ এবং ডেটা থেকে আলাদা রাখে। কাজের প্রোফাইল তৈরি করার আগে, ডিপিসি ডিভাইসে ব্যবহারের জন্য একটি পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থাও করতে পারে।

এই নির্দেশিকা আপনাকে দেখায় কিভাবে একটি DPC তৈরি করতে হয় যা কাজের প্রোফাইল তৈরি এবং পরিচালনা করতে পারে।

EMM-এর জন্য DPC সাপোর্ট লাইব্রেরি

EMM-এর জন্য DPC সাপোর্ট লাইব্রেরিতে ইউটিলিটি এবং হেল্পার ক্লাস রয়েছে যা একটি এন্টারপ্রাইজ পরিবেশে অ্যান্ড্রয়েড ডিভাইসগুলির বিধান এবং পরিচালনার সুবিধা দেয়। লাইব্রেরি আপনাকে আপনার DPC অ্যাপের গুরুত্বপূর্ণ বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়:

  • পরিচালিত Google Play অ্যাকাউন্টের বিধান সমর্থন : DPC অ্যাপ থেকে পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থা করার জন্য Google Play এবং Google Play পরিষেবার অ্যাপগুলিকে ন্যূনতম সংস্করণের প্রয়োজনীয়তা পূরণ করতে হবে। যাইহোক, এই অ্যাপগুলি আপডেট করা জটিল হতে পারে। DPC সাপোর্ট লাইব্রেরি এই অ্যাপগুলিকে আপডেট করার যত্ন নেয়, এবং পরিচালিত Google Play অ্যাকাউন্টের প্রভিশনিং প্রক্রিয়ার ভবিষ্যতের আপডেটগুলির সাথে সামঞ্জস্যতা নিশ্চিত করে৷ বিশদ বিবরণের জন্য পরিচালিত Google Play অ্যাকাউন্টের বিধান সমর্থন দেখুন৷
  • পরিচালিত কনফিগারেশন সমর্থন : অনুমোদিত অ্যাপগুলির জন্য পরিচালিত কনফিগারেশনগুলি পরিচালনা করতে প্লে EMM API ব্যবহার করা হল আপনার DPC-তে পরিচালিত কনফিগারেশনগুলি বাস্তবায়নের সবচেয়ে সহজ উপায়৷ DPC সাপোর্ট লাইব্রেরি আপনাকে Google Play-এ আপনার EMM কনসোল ব্যবহার করে অ্যাডমিন দ্বারা সেট করা পরিচালিত কনফিগারেশন (আগে, অ্যাপ সীমাবদ্ধতা) প্রয়োগ করার কাজটি অর্পণ করতে দেয়৷ পরিচালিত কনফিগারেশনগুলি পরিচালনা করতে Play EMM API ব্যবহার করে ইনস্টলেশনের সময় অ্যাপ কনফিগারেশনকে পারমাণবিকভাবে প্রয়োগ করার অনুমতি দেয়। আপনার DPC-তে এই ক্ষমতা কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য কাজের অ্যাপগুলিতে পরিচালিত কনফিগারেশন প্রয়োগ করুন দেখুন।

লাইব্রেরি ডাউনলোড করতে নিচের ধাপগুলো অনুসরণ করুন। এই নির্দেশিকায় বিস্তারিত কাজগুলি DPC সাপোর্ট লাইব্রেরির ব্যবহার অনুমান করে।

DPC সাপোর্ট লাইব্রেরি ডাউনলোড করুন

DPC সাপোর্ট লাইব্রেরি ব্যবহার করতে, Android Enterprise EMM প্রদানকারী সম্প্রদায় থেকে লাইব্রেরিটি ডাউনলোড করুন। আপনাকে অবশ্যই আপনার build.gradle ফাইলে লাইব্রেরি যোগ করতে হবে এবং আপনি যখন আপনার DPC অ্যাপ তৈরি করবেন তখন অন্যান্য নির্ভরতার যত্ন নেবেন। উদাহরণস্বরূপ, লাইব্রেরির জন্য 11.4.0 Google Play Services auth ক্লায়েন্ট লাইব্রেরি প্রয়োজন।

  1. build.gradle ফাইলে লাইব্রেরি যোগ করুন:

    গ্রোভি

    implementation(name:'dpcsupport-yyyymmdd', ext:'aar')
    

    কোটলিন

    implementation(name = "dpcsupport-yyyymmdd", ext = "aar")
    
  2. build.gradle ফাইলে 11.4.0 Google Play Services auth ক্লায়েন্ট লাইব্রেরি যোগ করুন:

    গ্রোভি

    implementation 'com.google.android.gms:play-services-auth:11.4.0'
    

    কোটলিন

    implementation("com.google.android.gms:play-services-auth:11.4.0")
    

লাইব্রেরি চালানোর জন্য নির্দিষ্ট কিছু অনুমতির প্রয়োজন, তাই আপনি Google Play-তে আপলোড করার সময় আপনার DPC অ্যাপের ম্যানিফেস্টে এগুলি যোগ করতে হবে:

  <uses-permission android:name=
      "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
  <uses-permission android:name=
      "android.permission.GET_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.MANAGE_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.WRITE_SYNC_SETTINGS"/>
  <uses-permission android:name=
      "com.google.android.providers.gsf.permission.READ_GSERVICES"/>

এই প্রাথমিক সেটআপ এবং স্থাপনার পদক্ষেপগুলি ছাড়াও, আপনি যে ক্ষমতা প্রয়োগ করতে চান তার উপর নির্ভর করে আপনাকে অবশ্যই আপনার DPC কোডে নির্দিষ্ট লাইব্রেরি কার্যকারিতা শুরু করতে হবে। বিশদ বিবরণ নীচের প্রাসঙ্গিক বিভাগে অন্তর্ভুক্ত করা হয়েছে.

একটি DPC তৈরি করুন

ডিভাইস প্রশাসন অ্যাপ্লিকেশনের জন্য ব্যবহৃত বিদ্যমান মডেলে আপনার DPC তৈরি করুন। বিশেষত, আপনার অ্যাপটিকে অবশ্যই ডিভাইস অ্যাডমিনিস্ট্রেশনে বর্ণিত DeviceAdminReceiver ( android.app.admin প্যাকেজের একটি ক্লাস) সাবক্লাস করতে হবে।

একটি কাজের প্রোফাইল তৈরি করুন

একটি নমুনার জন্য যা দেখায় কিভাবে একটি মৌলিক কাজের প্রোফাইল তৈরি করতে হয়, GitHub-এ BasicManagedProfile দেখুন।

ইতিমধ্যেই একটি ব্যক্তিগত প্রোফাইল আছে এমন একটি ডিভাইসে একটি কাজের প্রোফাইল তৈরি করতে, প্রথমে FEATURE_MANAGED_USERS সিস্টেম বৈশিষ্ট্যের অস্তিত্ব পরীক্ষা করে ডিভাইসটি একটি কাজের প্রোফাইল সমর্থন করতে পারে কিনা তা খুঁজে বের করুন:

কোটলিন

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

জাভা

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

যদি ডিভাইসটি কাজের প্রোফাইল সমর্থন করে, তাহলে একটি ACTION_PROVISION_MANAGED_PROFILE অ্যাকশনের সাথে একটি উদ্দেশ্য পাঠিয়ে একটি কাজের প্রোফাইল তৈরি করুন৷ (কিছু ডকুমেন্টেশনে, ম্যানেজড প্রোফাইল হল একটি সাধারণ শব্দ যার অর্থ এন্টারপ্রাইজে অ্যান্ড্রয়েডের প্রেক্ষাপটে কাজের প্রোফাইলের মতোই।) অতিরিক্ত হিসাবে ডিভাইস অ্যাডমিন প্যাকেজের নাম অন্তর্ভুক্ত করুন:

কোটলিন

val provisioningActivity = getActivity()

// You'll need the package name for the DPC app.
val myDPCPackageName = "com.example.myDPCApp"

// Set up the provisioning intent
val adminComponent = ComponentName(provisioningActivity.applicationContext, MyAdminReceiver::class.java)
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString())
if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE)
    provisioningActivity.finish()
}

জাভা

Activity provisioningActivity = getActivity();
// You'll need the package name for the DPC app.
String myDPCPackageName = "com.example.myDPCApp";
// Set up the provisioning intent
Intent provisioningIntent =
        new Intent("android.app.action.PROVISION_MANAGED_PROFILE");
ComponentName adminComponent = new ComponentName(provisioningActivity.getApplicationContext(), MyAdminReceiver.class);
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString());
if (provisioningIntent.resolveActivity(provisioningActivity.getPackageManager())
         == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE);
    provisioningActivity.finish();
}

সিস্টেম নিম্নলিখিত কাজ করে এই অভিপ্রায়ে সাড়া দেয়:

  • ডিভাইসটি এনক্রিপ্ট করা আছে কিনা তা যাচাই করে। যদি এটি না হয়, সিস্টেমটি ব্যবহারকারীকে এগিয়ে যাওয়ার আগে ডিভাইসটিকে এনক্রিপ্ট করতে অনুরোধ করে৷
  • একটি কাজের প্রোফাইল তৈরি করে।
  • কাজের প্রোফাইল থেকে অপ্রয়োজনীয় অ্যাপ্লিকেশনগুলি সরিয়ে দেয়৷
  • DPC অ্যাপটিকে কাজের প্রোফাইলে অনুলিপি করে এবং DPC কে নিজেই প্রোফাইল মালিক হিসাবে সেট করে।

প্রভিশনিং সফল হয়েছে কিনা তা দেখতে onActivityResult() ওভাররাইড করুন:

কোটলিন

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data)
    }
}

জাভা

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return;
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data);
    }
}

কাজের প্রোফাইল সক্ষম করা শেষ করুন

প্রোফাইলের ব্যবস্থা করা হলে, সিস্টেমটি DPC অ্যাপের DeviceAdminReceiver.onProfileProvisioningComplete() পদ্ধতিতে কল করে। কাজের প্রোফাইল সক্ষম করা শেষ করতে এই কলব্যাক পদ্ধতিটি ওভাররাইড করুন৷

একটি সাধারণ DeviceAdminReceiver.onProfileProvisioningComplete() কলব্যাক বাস্তবায়ন নিম্নলিখিতগুলি করে:

কাজের প্রোফাইল সক্রিয় করুন

একবার আপনি এই কাজগুলি সম্পন্ন করার পরে, কাজের প্রোফাইল সক্রিয় করতে ডিভাইস নীতি পরিচালকের setProfileEnabled() পদ্ধতিতে কল করুন:

কোটলিন

// Get the device policy manager
val myDevicePolicyMgr = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
val componentName = myDeviceAdminReceiver.getComponentName(this)
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile")
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName)

জাভা

// Get the device policy manager
DevicePolicyManager myDevicePolicyMgr =
        (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = myDeviceAdminReceiver.getComponentName(this);
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile");
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName);

ডিভাইস নীতি সেট আপ করুন

DPC অ্যাপটি একটি প্রতিষ্ঠানের প্রয়োজনীয়তা এবং সীমাবদ্ধতা পূরণের জন্য একজন প্রশাসকের দ্বারা সেট করা ডিভাইস নীতিগুলি প্রয়োগ করে৷ উদাহরণস্বরূপ, নিরাপত্তা নীতির প্রয়োজন হতে পারে যে নির্দিষ্ট সংখ্যক ব্যর্থ পাসওয়ার্ড প্রচেষ্টার পরে ডিভাইসগুলি লক করা। DPC বর্তমান নীতিগুলির জন্য EMM কনসোলকে জিজ্ঞাসা করে তারপরে ডিভাইস প্রশাসন API ব্যবহার করে নীতিগুলি প্রয়োগ করে৷

ডিভাইস নীতিগুলি কীভাবে প্রয়োগ করতে হয় সে সম্পর্কে তথ্যের জন্য, নীতিগুলি দেখুন৷

কাজের অ্যাপে পরিচালিত কনফিগারেশন প্রয়োগ করুন

ম্যানেজ করা কনফিগারেশনগুলি আপনাকে আপনার গ্রাহকদের অ্যাপগুলিকে পূর্ব-কনফিগার করার ক্ষমতা প্রদান করতে দেয় যেগুলি তারা স্থাপনের জন্য অনুমোদন করেছে এবং কনফিগারেশন পরিবর্তন করার প্রয়োজন হলে সহজেই সেই অ্যাপগুলিকে আপডেট করতে পারে৷ স্থাপনার আগে একটি অ্যাপ কনফিগার করা নিশ্চিত করে যে সংস্থার নিরাপত্তা এবং অন্যান্য নীতিগুলি লক্ষ্য ডিভাইসে অ্যাপ ইনস্টল করার সময় পূরণ করা হয়েছে।

অ্যাপের ক্ষমতাগুলি অ্যাপ ডেভেলপার দ্বারা একটি XML স্কিমা (পরিচালিত কনফিগারেশন স্কিমা) দ্বারা সংজ্ঞায়িত করা হয় যা Google Play-তে আপলোড করার সময় অ্যাপের সাথে থাকে (অ্যাপ বিকাশকারীরা, বিস্তারিত জানার জন্য সেট আপ পরিচালিত কনফিগারেশন দেখুন)।

আপনি আপনার EMM কনসোলে আপনার গ্রাহক প্রশাসকদের জন্য প্রদর্শন করার জন্য অ্যাপ থেকে এই স্কিমাটি পুনরুদ্ধার করুন, একটি UI প্রদান করুন যাতে স্কিমা প্রদর্শনে সংজ্ঞায়িত বিভিন্ন বিকল্প রয়েছে এবং প্রশাসকদের অ্যাপের সেটিংস প্রি-কনফিগার করতে সক্ষম করে৷ প্রশাসকের দ্বারা সেট করা ফলস্বরূপ পরিচালিত কনফিগারেশন সাধারণত EMM সার্ভারে সংরক্ষিত থাকে যা তারপর Managedconfigurationsfordevice বা Managedconfigurationsforuser সেট করতে প্লে EMM API ব্যবহার করে। বিস্তারিত জানার জন্য Play এর মাধ্যমে পরিচালিত কনফিগারেশন দেখুন।

পরিচালিত কনফিগারেশনগুলি প্লে ইএমএম API (প্রস্তাবিত পদ্ধতি) ব্যবহার করে বা সরাসরি DPC থেকে ( সরাসরি DPC থেকে পরিচালিত কনফিগারেশন প্রয়োগ করুন- এ বর্ণিত) ব্যবহার করে অ্যাপে প্রয়োগ করা যেতে পারে। প্লে ইএমএম এপিআই ব্যবহার করার অনেক সুবিধা রয়েছে, সহজ বাস্তবায়ন সহ কারণ আপনি ডিপিসি কাজগুলিকে সহজ করতে ডিপিসি সাপোর্ট লাইব্রেরি ব্যবহার করতে পারেন। এছাড়াও, প্লে EMM API:

  • যখন একটি নতুন অ্যাপ ইনস্টল করা হয় তখন পরমাণুভাবে কনফিগারেশন সেট করে, এইভাবে ব্যবহারকারী প্রথমবার অ্যাপটি চালু করার সময় অ্যাপটি প্রস্তুত কিনা তা নিশ্চিত করে।
  • আপনাকে প্রতি-ব্যবহারকারীর ভিত্তিতে কনফিগারেশনগুলি পরিচালনা করতে দেয়, যাতে আপনি প্রতি-ডিভাইসের ভিত্তিতে ব্যবস্থা পর্যবেক্ষণ এড়াতে পারেন।

Play EMM API ব্যবহার করে পরিচালিত কনফিগারেশন প্রয়োগ করুন

পরিচালিত কনফিগারেশনের জন্য Play EMM API ব্যবহার করতে, DPC-কে অবশ্যই Google Play-কে কনফিগারেশন সেট করার অনুমতি দিতে হবে। DPC সাপোর্ট লাইব্রেরি Google Play দ্বারা প্রেরিত কনফিগারেশন প্রক্সি করে আপনার জন্য এই কাজটির যত্ন নেয়।

Play EMM API ব্যবহার করতে, DPC সমর্থন লাইব্রেরি ডাউনলোড করুন এবং তারপর আপনার DPC-তে পরিচালিত কনফিগারেশন সমর্থন সক্ষম করুন৷

আপনার DPC-তে পরিচালিত কনফিগারেশন সমর্থন সক্ষম করুন৷

আপনার ডিপিসিতে এই ক্লাসটি আমদানি করুন:

com.google.android.apps.work.dpcsupport.ManagedConfigurationsSupport

পরিচালিত কনফিগারেশন লাইব্রেরি আরম্ভ করুন। এই উদাহরণে, "অ্যাডমিন" হল DeviceAdminReceiver- এর ComponentName।

কোটলিন

var managedConfigurationsSupport = ManagedConfigurationsSupport(context, admin)

জাভা

ManagedConfigurationsSupport managedConfigurationsSupport =
    new ManagedConfigurationsSupport(context, admin);

পরিচালিত কনফিগারেশন সক্ষম করুন:

কোটলিন

managedConfigurationsSupport.enableManagedConfigurations()

জাভা

managedConfigurationsSupport.enableManagedConfigurations();

এই লাইব্রেরিটি আপনার DPC-তে আরম্ভ করা হলে, আপনি সরাসরি DPC-তে এই কাজগুলি কোড করার পরিবর্তে অনুমোদিত অ্যাপগুলিতে পরিচালিত কনফিগারেশনগুলি প্রয়োগ করতে আপনার EMM কনসোল এবং সার্ভারে Google Play EMM API ব্যবহার করতে পারেন৷ বিস্তারিত জানার জন্য Play এর মাধ্যমে পরিচালিত কনফিগারেশন দেখুন।

সরাসরি DPC থেকে পরিচালিত কনফিগারেশন প্রয়োগ করুন

DPC থেকে সরাসরি একটি অ্যাপের কনফিগারেশন সেটিংস পরিবর্তন করতে, DevicePolicyManager.setApplicationRestrictions() পদ্ধতিতে কল করুন এবং DPC অ্যাপের DeviceAdminReceiver , লক্ষ্য অ্যাপের প্যাকেজ নাম এবং অ্যাডমিন দ্বারা সেট করা অ্যাপের পরিচালিত কনফিগারেশন সমন্বিত বান্ডেলের জন্য প্যারামিটার পাস করুন। দেখুন কিভাবে আপনার DPC এবং EMM কনসোল ইন্টারঅ্যাক্ট করে এবং বিস্তারিত জানার জন্য পরিচালিত কনফিগারেশন সেট আপ করে । যাইহোক, মনে রাখবেন যে পরিচালিত কনফিগারেশনগুলি প্রয়োগ করার জন্য এই বিকল্প পদ্ধতিটি পরিচালিত Google Play অ্যাকাউন্টের স্থাপনায় সুপারিশ করা হয় না।

পরিচালিত Google Play অ্যাকাউন্ট বিধান সমর্থন

DPC সাপোর্ট লাইব্রেরিতে পরিচালিত Google Play অ্যাকাউন্টের ব্যবস্থা করার জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। এই সমর্থনটি ব্যবহার করার জন্য, আপনাকে প্রথমে লাইব্রেরি শুরু করতে হবে এবং তারপরে আপনি কাজের পরিবেশ নিশ্চিত করতে পারেন এবং একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করতে পারেন

আপনার DPC-তে পরিচালিত Google Play অ্যাকাউন্ট সমর্থন শুরু করুন৷

আপনার ডিপিসিতে এই ক্লাসটি আমদানি করুন:

com.google.android.apps.work.dpcsupport.AndroidForWorkAccountSupport

প্রভিশনিং কম্প্যাটিবিলিটি লাইব্রেরি শুরু করুন। এই উদাহরণে, "অ্যাডমিন" হল DeviceAdminReceiver এর ComponentName

কোটলিন

var androidForWorkAccountSupport = AndroidForWorkAccountSupport(context, admin)

জাভা

AndroidForWorkAccountSupport androidForWorkAccountSupport =
    new AndroidForWorkAccountSupport(context, admin);

পরিচালিত Google Play অ্যাকাউন্টগুলির জন্য কাজের পরিবেশ নিশ্চিত করুন

DPC প্রোফাইল মালিক মোড ( ACTION_PROVISION_MANAGED_PROFILE ) বা ডিভাইস মালিক মোডে ( ACTION_PROVISION_MANAGED_DEVICE ) ডিভাইসের ব্যবস্থা করার পরে, নিশ্চিত করুন যে ডিভাইসটি কল করে পরিচালিত Google Play অ্যাকাউন্টগুলিকে সমর্থন করতে পারে:

কোটলিন

androidForWorkAccountSupport.ensureWorkingEnvironment(callback)

জাভা

androidForWorkAccountSupport.ensureWorkingEnvironment(callback);

কলব্যাক এই প্রক্রিয়ার সাফল্য বা ব্যর্থতার রিপোর্ট করে। কলব্যাক সফলভাবে ফিরে আসলে, একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করা যেতে পারে। যদি কলব্যাক একটি ত্রুটি রিপোর্ট করে, ব্যবহারকারীকে নিশ্চিত করুন যে ডিভাইসটিতে একটি নেটওয়ার্ক সংযোগ রয়েছে (উদাহরণস্বরূপ, যদি ডাউনলোড ব্যর্থ হয়)। অন্য ক্ষেত্রে, Google-এ ব্যর্থতার রিপোর্ট করুন।

কোটলিন

object : WorkingEnvironmentCallback() {
    override fun onSuccess() {
        // Can now provision the managed Google Play Account
    }
    override fun onFailure(error: Error) {
        // Notify user, handle error (check network connection)
    }
}

জাভা

new WorkingEnvironmentCallback() {
    @Override
    public void onSuccess() {
        // Can now provision the managed Google Play Account
    }

    @Override
    public void onFailure(Error error) {
        // Notify user, handle error (check network connection)
    }
}

একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করুন

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

কোটলিন

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback)

জাভা

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
  • token — Google Play EMM API Users.generateAuthenticationToken() কল দ্বারা উত্পন্ন ব্যবহারকারী প্রমাণীকরণ টোকেন৷
  • accountAddedCallback — ডিভাইসে সফলভাবে যোগ করা পরিচালিত Google Play অ্যাকাউন্ট ফিরিয়ে দেয়। এই কলব্যাকে onAccountReady() এবং onFailure() পদ্ধতি অন্তর্ভুক্ত করা উচিত।

কোটলিন

val workAccountAddedCallback = object : WorkAccountAddedCallback() {
    override fun onAccountReady(account: Account, deviceHint: String) {
        // Device account was successfully added to the device
        // and is ready to be used.
    }

    override fun onFailure(error: Error) {
        // The account was not successfully added. Check that the token
        // provided was valid (it expires after a certain period of time).
    }
}

জাভা

WorkAccountAddedCallback workAccountAddedCallback =
    new WorkAccountAddedCallback() {
        @Override
        public void onAccountReady(Account account, String deviceHint) {
            // Device account was successfully added to the device
            // and is ready to be used.
        }

        @Override
        public void onFailure(Error error) {
            // The account was not successfully added. Check that the token
            // provided was valid (it expires after a certain period of time).
        }
};
  • ডিভাইস অ্যাডমিনিস্ট্রেশন এপিআই সম্পর্কে আরও জানতে, ডিভাইস অ্যাডমিনিস্ট্রেশন দেখুন।
  • অ্যান্ড্রয়েড এন্টারপ্রাইজ প্রভিশনিং পদ্ধতি সম্পর্কে জানতে, অ্যান্ড্রয়েড এন্টারপ্রাইজ ডেভেলপারের গাইডে প্রোভিশন ডিভাইস দেখুন।
  • একটি GitHub নমুনার জন্য যা দেখায় কিভাবে একটি মৌলিক কাজের প্রোফাইল তৈরি করতে হয়, BasicManagedProfile দেখুন।
  • একটি GitHub নমুনার জন্য যা প্রদর্শন করে যে কীভাবে প্রোফাইল মালিক হিসাবে অন্যান্য অ্যাপে কনফিগারেশন সেট করতে হয়, দেখুন AppRestrictionEnforcer