Bu kılavuzda, bir cihazda iş profilinin nasıl algılanacağı açıklanmaktadır. Yalnızca Android Device Policy uygulaması tarafından yönetilen iş profilleri için geçerlidir.
Uygulamanın iş profilinde çalışıp çalışmadığını algılama
Aşağıdaki yöntem, arama uygulamasının Android Device Policy uygulaması tarafından yönetilen bir iş profilinde çalışıp çalışmadığını kontrol eder.
Kotlin
fun isInsideWorkProfile(): Boolean {
val devicePolicyManager = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
return devicePolicyManager.isProfileOwnerApp("com.google.android.apps.work.clouddpc")
}
Java
boolean isInsideWorkProfile() {
DevicePolicyManager devicePolicyManager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
return devicePolicyManager.isProfileOwnerApp("com.google.android.apps.work.clouddpc");
}
Cihazda iş profili olup olmadığını algılama
Bir cihazda Android Device Policy uygulaması tarafından yönetilen 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. Kişisel profildeki bir uygulamadan, com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE amaç sorgusu, Android Device Policy uygulaması tarafından yönetilen bir iş profili varsa profiller arası amaç olarak çözümlenmelidir. Bu yöntem, yalnızca böyle bir iş profiline sahip bir cihazın kişisel profilinden çağrıldığında true değerini döndürür.
Android 11 ve sonraki sürümler:
Kotlin
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 }
}
Java
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ümlerde:
Kotlin
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" }
}
Java
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");
});
}