Как запустить другое приложение в фоновом режиме, когда экран программно выключен на рутованном устройстве?
Я создаю небольшое приложение, которое должно иметь возможность автоматически запускать полностью отдельные приложения после регистрации определенных триггеров.
Я попробовал следующие два метода для запуска приложений:
начать деятельность
Intent i = ctx.getPackageManager().getLaunchIntentForPackage("package.name"); ctx.startActivity(i);
команда оболочки
adb shell monkey -p package.name -c android.intent.category.LAUNCHER 1
Проблема в том, что первый метод работает, только если экран включен и разблокирован, а команда может вывести приложение на передний план. Второй метод, даже если он запускает приложения, приложения не запускают свои дочерние действия.
Чтобы поместить это в контекст, скажем, я хочу запустить приложение VPN. Первый метод ничего не делает, если экран выключен или телефон заблокирован. Вторая команда запускает приложение даже при заблокированном телефоне и выключенном экране, но приложение не запускает свою собственную службу / активность VPN, пока я не включу экран. По сути, приложения ничего не делают (даже если они запускаются), пока экран не включен.
Любые идеи, как я могу запустить приложение и убедиться, что оно действительно делает то, что оно обычно делает, когда оно запускается фактическим человеческим взаимодействием, а не просто сидеть без дела?
Приложение будет использоваться на рутированном телефоне Android 7.0.