diff --git a/res/values/strings.xml b/res/values/strings.xml index 769fff4b1dd..1122e0f5d11 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3390,6 +3390,8 @@ App is copy-protected. Install location isn\u2019t valid. System updates can\u2019t be installed on external media. + + Device Administrator can\u2019t be installed on external media. Force stop? diff --git a/src/com/android/settings/DeviceAdminSettings.java b/src/com/android/settings/DeviceAdminSettings.java index 9791160b575..3adce15b9bd 100644 --- a/src/com/android/settings/DeviceAdminSettings.java +++ b/src/com/android/settings/DeviceAdminSettings.java @@ -359,6 +359,9 @@ public class DeviceAdminSettings extends ListFragment { DeviceAdminInfo deviceAdminInfo = createDeviceAdminInfo(resolveInfo); // add only visible ones (note: active admins are added regardless of visibility) if (deviceAdminInfo != null && deviceAdminInfo.isVisible()) { + if (!deviceAdminInfo.getActivityInfo().applicationInfo.isInternal()) { + continue; + } DeviceAdminListItem item = new DeviceAdminListItem(); item.info = deviceAdminInfo; item.name = deviceAdminInfo.loadLabel(pm).toString(); @@ -391,6 +394,8 @@ public class DeviceAdminSettings extends ListFragment { for (int j = 0; j < resolvedMax; ++j) { DeviceAdminInfo deviceAdminInfo = createDeviceAdminInfo(resolved.get(j)); if (deviceAdminInfo != null) { + // Don't do the applicationInfo.isInternal() check here; if an active + // admin is already on SD card, just show it. DeviceAdminListItem item = new DeviceAdminListItem(); item.info = deviceAdminInfo; item.name = deviceAdminInfo.loadLabel(packageManager).toString(); diff --git a/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java b/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java index fffdf74d953..69247f6e682 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java +++ b/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java @@ -86,6 +86,8 @@ public class StorageWizardMoveProgress extends StorageWizardBase { switch (returnCode) { case PackageManager.MOVE_FAILED_INSUFFICIENT_STORAGE: return getString(R.string.insufficient_storage); + case PackageManager.MOVE_FAILED_DEVICE_ADMIN: + return getString(R.string.move_error_device_admin); case PackageManager.MOVE_FAILED_DOESNT_EXIST: return getString(R.string.does_not_exist); case PackageManager.MOVE_FAILED_FORWARD_LOCKED: