in BasicManagedProfile/Application/src/main/java/com/example/android/basicmanagedprofile/BasicManagedProfileFragment.java [114:139]
private boolean isApplicationEnabled(String packageName) {
Activity activity = getActivity();
PackageManager packageManager = activity.getPackageManager();
try {
int packageFlags;
if(Build.VERSION.SDK_INT < 24){
//noinspection deprecation
packageFlags = PackageManager.GET_UNINSTALLED_PACKAGES;
}else{
packageFlags = PackageManager.MATCH_UNINSTALLED_PACKAGES;
}
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(
packageName, packageFlags);
// Return false if the app is not installed in this profile
if (0 == (applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED)) {
return false;
}
// Check if the app is not hidden in this profile
DevicePolicyManager devicePolicyManager =
(DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
return !devicePolicyManager.isApplicationHidden(
BasicDeviceAdminReceiver.getComponentName(activity), packageName);
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}