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:
- regarding implementation of floating view
- 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:

in terms of button detection - made work in following way (everything happens in service oncreate code):
- wrap desired view viewgroup (linearlayout, relative or other)
- 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); } }; - add wrapper view window manager, , sure windowmanager.layoutparams.flag_not_focusable not set on wrapper layout params.
Comments
Post a Comment