Я разрабатываю приложение на Android, которое использует Device Admin.Запрашиваемая для администратора устройства прекрасно работает для всех устройств, где приложение установлено в «обычном» внутреннем хранилище устройства.
Начиная с Android Marshmallow, если вы вставляете SD-карту в устройство, вы можете выбрать, если выхочу использовать его как «переносное» или «внутреннее» хранилище.Когда выбран «внутренний», SD-карта «сливается» с (оригинальным) внутренним хранилищем устройства (см., Например, здесь дополнительную информацию https://gadgetguideonline.com/android/android-marshmallow-guide/how-to-use-micro-sd-card-as-internal-storage-in-android-marshmallow/).
Если я сейчас установлю приложение на моем тестовом устройстве, котороеимеет SD-карту, отформатированную как «внутренняя» вышеупомянутым способом, я получаю сообщение об ошибке, что для того, чтобы приложение стало администратором устройства, оно должно быть установлено во внутреннем хранилище устройства.
Кажется, что хотяSD-карту следует объединить с (оригинальным) внутренним хранилищем, которое система обрабатывает по-разному на некоторых уровнях.
Кто-нибудь видел такое поведение и знает способ обойти это / все еще может использовать администратор устройства?/ принудительно установить приложение на «истинное» внутреннее хранилище?
[В манифесте не установлено значение android:installLocation
, которое по умолчанию равно internalOnly
в соответствии с документацией Android;к internalOnly
не имеет значения].