Фон: Я пытаюсь создать приложение Launcher, которое ограничит пользователей только набором разрешенных приложений и не позволит им получить доступ к настройкам устройства & в любом другом разрешенном приложении.Android - запуск активности поверх других приложений
Почему: Это проект для частной компании по распространению устройств своим сотрудникам с ограниченным использованием.
Проблема: я могу обнаружить запуск других приложений, но я не могу наложить свою деятельность поверх них. Ниже приведен код, я пытаюсь получить трансляцию запрещенного приложения.
private class BadAppReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
Intent i = new Intent(HomePage.this,ErrorClass.class);
wh.topAct = wh.bad_app;
HomePage.this.startActivity(i);
Toast.makeText(HomePage.this, "Access to " + wh.bad_app + " is not allowed.",Toast.LENGTH_LONG).show();
}
}
Интересный факт: Я могу наложить, если я просто запустить другое приложение, вместо того, чтобы пытаться открыть активность из моего приложения. Использование этого решения заставит мое приложение зависеть от другого приложения и от зависания экрана на пару секунд.
Вопрос: Чего я не могу или могу сделать, чтобы вывести свою активность по другим приложениям.
Заранее спасибо, и ваша помощь очень ценится. - Pratidhwani
Благодаря Умеров, я использовал свое решение, но это то, что сейчас происходит, когда пользователь открывает настройки из лотка, мое приложение получает радиопередачу и стреляет ErrorClass активность, Тост у меня на месте появляется, но ErrorClass Активность не отображается. Таким образом, пользователь может получить доступ к настройкам, теперь, когда пользователь нажимает кнопку «назад» на настройках, появляется ErrorClass.
это то, что я имею в ErrorClass OnCreate
super.onCreate(savedInstanceState);
WindowManager.LayoutParams windowManagerParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY ,
WindowManager.LayoutParams. FLAG_DIM_BEHIND, PixelFormat.TRANSLUCENT);
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View myView = inflater.inflate(R.layout.error, null);
wm.addView(myView, windowManagerParams);
wh = ((Launcher) getApplication()).getvar();
mHandlerReg.removeCallbacks(mUpdatereg);
mHandlerReg.postDelayed(mUpdatereg,2000);
Спасибо !! - Pratidhwani
Привет Умеров, я добавил результаты в моем посте выше после того, как с помощью решения. Не могли бы вы видеть и сообщить мне, что я делаю неправильно здесь. Спасибо за помощь! – Pratidhwani
Наглядное представление/пример вашего приложения будет полезно для понимания вашей проблемы. –
Я могу решить мою проблему, ваше решение работает для меня. Я использовал его внутри Activity, поэтому он не работал, теперь я использовал его внутри Service, и он отлично работает. Большое спасибо. – Pratidhwani