কাজের প্রোফাইল সনাক্তকরণ, কাজের প্রোফাইল সনাক্তকরণ

এই নির্দেশিকাটি ব্যাখ্যা করে যে কিভাবে একটি ডিভাইসে একটি কাজের প্রোফাইল সনাক্ত করতে হয়। এটি শুধুমাত্র Android ডিভাইস নীতি অ্যাপ দ্বারা পরিচালিত কাজের প্রোফাইলগুলিতে প্রযোজ্য।

অ্যাপটি কাজের প্রোফাইলের ভিতরে চলছে কিনা তা শনাক্ত করুন

নিম্নলিখিত পদ্ধতিটি Android ডিভাইস নীতি অ্যাপ দ্বারা পরিচালিত কোনও কাজের প্রোফাইলের মধ্যে কলিং অ্যাপটি চলছে কিনা তা পরীক্ষা করে।

কোটলিন জাভা
fun isInsideWorkProfile(): Boolean {
  val devicePolicyManager = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager

  return devicePolicyManager.isProfileOwnerApp("com.google.android.apps.work.clouddpc")
}
boolean isInsideWorkProfile() {
  DevicePolicyManager devicePolicyManager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);

  return devicePolicyManager.isProfileOwnerApp("com.google.android.apps.work.clouddpc");
}

ডিভাইসটিতে কাজের প্রোফাইল আছে কিনা তা শনাক্ত করুন

অ্যান্ড্রয়েড ডিভাইস পলিসি অ্যাপ দ্বারা পরিচালিত কোনও ডিভাইসে কাজের প্রোফাইল আছে কিনা তা নির্ধারণ করতে, নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন। এটি যেকোন ম্যানেজমেন্ট মোড থেকে কল করা যেতে পারে। ব্যক্তিগত প্রোফাইলের একটি অ্যাপ থেকে, com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE জন্য অনুসন্ধান করা একটি ক্রস-প্রোফাইল অভিপ্রায় হিসাবে সমাধান করা উচিত যদি Android ডিভাইস নীতি অ্যাপ দ্বারা পরিচালিত একটি কাজের প্রোফাইল বিদ্যমান থাকে। এই পদ্ধতিটি শুধুমাত্র তখনই true হবে যখন এমন একটি কাজের প্রোফাইল আছে এমন একটি ডিভাইসের ব্যক্তিগত প্রোফাইল থেকে কল করা হবে।

Android 11 এবং পরবর্তী:

কোটলিন জাভা
fun hasWorkProfile(): Boolean {
  val intent = Intent("com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE")
  val activities = context.packageManager.queryIntentActivities(intent, 0)
  return activities.any { it.isCrossProfileIntentForwarderActivity }
}
boolean hasWorkProfile() {
  Intent intent = new Intent("com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE");
  List<ResolveInfo> activities = context.getPackageManager().queryIntentActivities(intent, 0);
  return activities.stream()
        .anyMatch(
            (ResolveInfo resolveInfo) -> {
              return resolveInfo.isCrossProfileIntentForwarderActivity();
            });
}

Android 11 এর আগে:

কোটলিন জাভা
fun hasWorkProfile(): Boolean {
  val intent = Intent("com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE")
  val activities = context.packageManager.queryIntentActivities(intent, 0)
  return activities.any { it.activityInfo.name == "com.android.internal.app.ForwardIntentToManagedProfile" }
}
boolean hasWorkProfile() {
  Intent intent = new Intent("com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE");
  List<ResolveInfo> activities = context.getPackageManager().queryIntentActivities(intent, 0);
  return activities.stream()
        .anyMatch(
            (ResolveInfo resolveInfo) -> {
              return resolveInfo.activityInfo.name.equals("com.android.internal.app.ForwardIntentToManagedProfile");
            });
}