3

Есть ли возможность запустить другое стороннее приложение, заблокированное в режиме киоска на Android L? Было бы здорово, если бы вы могли сделать это без использования root-доступа. Но если это невозможно без использования доступа root, это также будет решением для меня.Запустить другое приложение в режиме киоска из приложения владельца устройства в Android Lollipop

Я успешно разработал приложение, которое является владельцем устройства на моем устройстве, и может использовать метод startLockTask() для блокировки себя в режиме киоска.

+0

Что такое приложение для владельцев устройств? – Abhi

ответ

0

Если вы можете заблокировать собственное приложение в режиме киоска, возможно, вы можете запустить другое приложение на Intent() с помощью flags, указав, что ваше мероприятие предназначено для продолжения вашего киоска. Вам также придется возиться с режимом запуска вашего приложения в AndroidManifest. Размешайте с singleTop, singleTask и singleInstance, пока не найдете то, что хотите. singleTop должен быть тем, кого вы ищете, но его трудно различить.

Если все остальное не удается, вы всегда можете запустить свое намерение, а затем сделать вид «adb kill SystemUI» через exec("su"), чтобы убить строку состояния, функциональные клавиши & жестких клавиш и навигацию. В зависимости от устройства SystemUI, вероятно, перезапустится. Тем не менее, вы можете использовать таймер. Грязное обходное решение, но вот что такое киоск. Для кода, вы можете использовать ответ здесь: exec su inside Android app

Надеется, что помог,

1

Если у вас есть приложение, которое уже устройство Владелец (как вы сказали), вы должны быть в состоянии позвонить из этого приложения:

DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Activity.DEVICE_POLICY_SERVICE); 
devicePolicyManager.setLockTaskPackages(new ComponentName(context.getApplicationContext(), YourDeviceOwnerReceiver.class), new String[]{"the.package.you.want.to.allow.to.be.in.kiosk.mode"}); 

Тогда из деятельности вы хотите установить в полноэкранном режиме (который должен быть в the.package.you.want.to.allow.to.be.in.kiosk.mode), вы можете позвонить startLockTask().