How to add a floating view to Android Window manager and listen to System/Hardware back button events -


i have service displays floating view on window manager (using window_type_alert permission). i'm able display , perform actions. but, have 2 specific questions:

  1. regarding implementation of floating view
  2. how listen system button event can dismiss view.

implementation:

in manifest added permissions for:

<uses-permission android:name="android.permission.system_alert_window" /> 

i have broadcast receiver listen alarm events. upon receiving event, i'm starting service display floating view. following code i'm using create view.

layoutparams layoutparams = new windowmanager.layoutparams(                 windowmanager.layoutparams.type_system_alert,                 windowmanager.layoutparams.flag_watch_outside_touch,                 pixelformat.translucent); 

whenever user performs action on view, i'm removing view window manager , killing service.

what know - if right way approach problem or there better ways it? and, should make changes layoutparams or keep them is?

secondly, dismiss floating view when there system back/hardware button press event. pointers on how helpful.

attaching screenshot of floating view better understanding:

floating view

in terms of button detection - made work in following way (everything happens in service oncreate code):

  1. wrap desired view viewgroup (linearlayout, relative or other)
  2. override dispatchkeyevent in wrapper view:

mview = new relativelayout(this) {         @override         public boolean dispatchkeyevent(keyevent event) {             if (event.getkeycode()==keyevent.keycode_back) {                 // < action >                 return true;             }             return super.dispatchkeyevent(event);         } }; 
  1. add wrapper view window manager, , sure windowmanager.layoutparams.flag_not_focusable not set on wrapper layout params.

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

php - MySQLi multi_query results for later use -