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

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

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

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

কোটলিন

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 ইন্টেন্টটি কোয়েরি করলে, যদি অ্যান্ড্রয়েড ডিভাইস পলিসি অ্যাপ দ্বারা পরিচালিত কোনো ওয়ার্ক প্রোফাইল বিদ্যমান থাকে, তবে তা একটি ক্রস-প্রোফাইল ইন্টেন্ট হিসেবে রিজলভ হবে। এই পদ্ধতিটি শুধুমাত্র তখনই true রিটার্ন করবে যখন এমন একটি ডিভাইসের পার্সোনাল প্রোফাইল থেকে কল করা হবে, যেটিতে এই ধরনের একটি ওয়ার্ক প্রোফাইল রয়েছে।

অ্যান্ড্রয়েড ১১ এবং তার পরবর্তী সংস্করণ:

কোটলিন

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

অ্যান্ড্রয়েড ১১-এর আগে:

কোটলিন

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