Bu kılavuzda, cihazlarda iş profillerinin nasıl algılanacağı gösterilmektedir. Yalnızca Android Device Policy uygulaması tarafından yönetilen iş profilleri için geçerlidir.
Uygulamanın bir iş profilinde çalışıp çalışmadığını algılama
Aşağıdaki yöntem, arayan uygulamanın Android Device Policy uygulaması tarafından yönetilen bir iş profilinde çalışıp çalışmadığını kontrol eder.
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");
}
Cihazın iş profili olup olmadığını algılama
Bir cihazda Android Device Policy uygulaması tarafından yönetilen bir iş profili olup olmadığını belirlemek için aşağıdaki yöntemi kullanın. Bu işlev herhangi bir yönetim modundan çağrılabilir. Android Device Policy uygulaması tarafından yönetilen bir iş profili varsa kişisel profildeki bir uygulamadan com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE
intent'i için sorgu yapmak, profiller arası bir intent olarak çözülmelidir. Bu yöntem yalnızca böyle bir iş profiline sahip bir cihazın kişisel profilinden çağrıldığında true
döndürür.
Android 11 ve sonraki sürümler:
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'den önceki sürümler:
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");
});
}