#android
Сижу, например, в скайпе... И тут приходит сообщение вайбера поверх сайпа.
Или даже экран телефона погашен, всё равно окошко вайбера появиться...
Какой механизм используется?
Ответы
Ответ 1
Не знаю как в Viber но такое можно сделать с помощью обычного AlertDialog прописываете в манифесте разрешение на отображение системных оконДля программной разблокировки нужно разрешение Перед показом диалога ставите флаг окну dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); И все. Можете поиграться с этим примером public class LocalService extends Service { Handler handler = new Handler(); @Override public int onStartCommand(Intent intent, int flags, int startId) { init(); return START_STICKY; } @Nullable @Override public IBinder onBind(Intent intent) { return null; } private void init(){ handler.postDelayed(task, 10000); } Runnable task = new Runnable() { @Override public void run() { showDialog(); handler.postDelayed(this, 10000); } }; private void showDialog(){ KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Test"); builder.setNegativeButton("Cancel", null); AlertDialog dialog = builder.create(); dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); dialog.show(); } } Будете получать алерт каждые 10 сек в независимости запущено приложение или нет. Не оставляйте телефон с запущенным сервисом :-)
Комментариев нет:
Отправить комментарий