इस गाइड में, किसी डिवाइस पर वर्क प्रोफ़ाइल का पता लगाने का तरीका बताया गया है. यह सिर्फ़ Android Device Policy ऐप्लिकेशन से मैनेज की जाने वाली वर्क प्रोफ़ाइल पर लागू होता है.
यह पता लगाना कि कोई ऐप्लिकेशन, वर्क प्रोफ़ाइल में चल रहा है या नहीं
यहां दिया गया तरीका, यह जांचता है कि कॉल करने वाला ऐप्लिकेशन, Android Device Policy ऐप्लिकेशन से मैनेज की जाने वाली वर्क प्रोफ़ाइल में चल रहा है या नहीं.
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");
}
यह पता लगाना कि डिवाइस पर वर्क प्रोफ़ाइल है या नहीं
यह पता लगाने के लिए कि किसी डिवाइस पर Android Device Policy ऐप्लिकेशन से मैनेज की जाने वाली वर्क प्रोफ़ाइल है या नहीं, यहां दिया गया तरीका अपनाएं. इसे किसी भी मैनेजमेंट मोड से कॉल किया जा सकता है. निजी प्रोफ़ाइल में मौजूद किसी ऐप्लिकेशन से, com.google.android.apps.work.clouddpc.ACTION_DETECT_WORK_PROFILE इंटेंट के लिए क्वेरी करने पर, यह क्रॉस-प्रोफ़ाइल इंटेंट के तौर पर रिज़ॉल्व होना चाहिए. ऐसा तब होगा, जब Android Device Policy ऐप्लिकेशन से मैनेज की जाने वाली वर्क प्रोफ़ाइल मौजूद हो. यह तरीका, सिर्फ़ तब true दिखाता है, जब इसे ऐसे डिवाइस की निजी प्रोफ़ाइल से कॉल किया जाता है जिस पर ऐसी वर्क प्रोफ़ाइल मौजूद हो.
Android 11 और उसके बाद के वर्शन:
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 से पहले के वर्शन:
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");
});
}