I've an app that can emulate the back button via the accessibility service by extending the AccessibilityService and using following:
performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK)
This works fine in all cases but one.
Problem
One of my users told me that it works on his android p device as long as his software buttons are enabled, but if he uses the new systems gesture navigation (like explained here: https://www.androidcentral.com/how-enable-android-p-gesture-navigation-system) this action does not work anymore.
Question
Any ideas why or how I can solve this? Even detecting if gesture navigation is enabled or not would help a little...
Related
I am developing an Android application for the deaf and blind using the accessibility service
Need to disable the touch screen, because android app is controlled through a third-party device
I tried to add a view to WindowManager and disable everything there (FLAG_NOT_FOCUSABLE, FLAG_NOT_TOUCHABLE), but as far as I understand, it disabled the touch screen only in this view, but not at all
I can request any type of permission except the root
EDIT:
Due to Android security, disabling the touchscreen is not possible without root, but you can use Proximity Sensor to disable touchscreen until first power button pressure
Congratulations and good will for you are working for a good cause.
Not sure exactly how to do this but One way is to create a full screen activity - hide navigation bar and soft navigation buttons also -- please refer this documentation
And 2. override onBackPressed and never allow it to call super.onBackPressed() or relaunch your app in OnPause() method.
Hope this helps somewhat.
I have a custom rooted android tablet working on Android M version. We built a kiosk application and next step is removing navigation bar completely, while our application is working. Also, when administrator close our application, navigation bar should appear again.
Before asking this question, I researched on Internet and find a lot of people have this problem. However, answers to theirs question were generally, making application to work in full-screen mode or in immersive full-screen mode.
These answers didn't help me at all, because user still can fling on screen and navigation bar would show again. These solutions are probably the best that can be done with an unrooted device, but in my case I need a better solution and my device is rooted.
Also, I saw this answer link, but after using this command my desktop went black, and couldn't reboot android system again. Happily I have recovery USB so my device is working again. :)
I found another answer link, and like others, didn't help me because I need to reboot system after adding line of code (qemu.hw.mainkeys = 1). Also, solution that I looking for is fully dynamical and done by code.
I am really convinced that this isn't mission impossible, because we had old tablet (also rooted) with button in back, which can hide and show navigation bar without rebooting it.
Any help is appreciated.
I can't help you with your problem, but provide a little more information.
The company im working for is using devices in kiosk mode, but we have custom android devices from a hardware producer, which provides a custom HAL interface. We can set the kiosk mode via that interface.
My guess is it cant be done easily, if it was easy, we would have not gone that way. Hope it helps.
Recently Android Wear introduced gestures so the user can navigate between apps/notifications without using their finger.
I already had a working app but that kept being removed from the screen due to these gestures. I tried it with an app made by Google itself (Googlesamples-JumpingJack) This has the same problem.
The purpose of these app is to move. But these cause the gestures to trigger. How can I disable these as long as my app is on, so that the Activity stays on the foreground?
As far as my understanding goes, you can (only?) disable gestures within the settings menu of the watch. I myself am struggling with disabling one or two specific gestures and so far found you can enable or disable them all. Haven't found anything on how to do this within your code, rather than within the settings.
Quick question, Android related..
How do I display a working "THREE VERTICAL-DOTS" floating action button, to trigger same functionality as Android menu button that worked on Kitkat (Android-4), and all previous Android versions?
Details:
I have an Android app that uses Java Native Interface. It worked fine in Kitkat (Android 4.x series), but in Android 5.x, the menu-options button (three vertical dots) no longer responds. Originally, in Kitkat (Android 4.x), the standard Android menu button brought up the applications configuration menus. Now, in Android-5, the Menu button has been replaced with a "Recent Apps" button (this was a very poor design change - probably the worst basic re-design of a working interface I have seen in 30 years... ). Is there an easy way to use a "floating action button" or something like that, to restore functionality of the standard Android "Menu" button?
On Samsung tablets, one can tweak: "Settings / Accessibility / Dexterity and interaction / Assistant menu " to "On", and then a floating-action-button appears, which then has the three vertical-dots as one of it's optional push-buttons, if invoked. Pressing that three vertical-dots button (on the Samsung FAB (floating-action-button)), triggers the old Kitkat/Android4 menu, and at least Samsung users can alter set my app config parameters.
In my app's AndroidManifest.xml file, I have minSdkVersion="8" and the targetSDKVersion="8". I have tried setting the targetSDKVersion to higher levels, which results in a non-functional floating action button, showing three vertical dots, appearing on the screen.
There must be an obvious way to fix this damage that the Android "Material Girl Design" people did to Android Kitkat(and previous Android vers.) Android Menu Button. I've detailed a work-around for my user-base at this point, and released an new app version which offers details on the work-around - at least for Samsung phone and tablet users, but an in-app button really should just appear to allow the main app configuration menu to be triggered.
I have looked at this:
http://developer.android.com/training/appbar/setting-up.html#utility
Don't want an "Action Bar". My app is a DOS-emulator, and needs all the screen space.
I have also reviewed:
Android Options Menu in Fragment
This gets closer, but rather than trial-and-error, I would like to just jump to the solution, if possible. There must be some code or a feature selection that just fixes the little action button that appears (but does not work), when I set the targetSDKVersion="12" (or higher values), in the AndroidManifest.xml file.
My app uses SDL (Simple DirectMedia Layer) vers. 1.2 and 1.3 to control and draw the screen.
I will post the answer here when I find it. I know it is possible, because Samsung is already doing this, within its "Accessibility/ Dexterity.. /Assistant Menu" feature.
I'm working on an existing Android application for medical purposes.
The back button and home button should be disabled.
With the existing code, the back button is disabled.
For disabling the home button they used onAttachedWindow with LayoutParams TYPE KEYGUARD,
but this security hole is fixed since 4.0.
I tried a lot of similar questions, but none worked out for me.
What is the way to get this done these days?
Also, hiding the status bar on tablet (where the home & back button live) would do the trick,
so any suggestions there are equally helpful!
Update: also, free third party apps that do the hiding trick are okay!
This sounds like a kiosk or dedicated use kinda thing, yes? You want your app to "own" the tablet and prevent other usage? I did this for an app whose sole purpose was to act as a remote control for a custom device. Basically I created two apps, a "custom launcher" app and the app that did the remote control. It's probably possible to integrate the two, but I wanted to support both dedicated and non-dedicated use. Note that I gave the launcher app a password-protected way to access settings so that I could recover the tablet at any time.
You can find a number of tutorials that will guide you through creating a custom launcher, just strip out all the stuff that makes it a generic launcher and replace it with an image button or similar that launches the actual app, or replace the launcher activity with your main app activity. Warning: I never figured out how to remove the launcher except by going into the settings.
As for hiding the system bar (notifications and status icons at the top of the screen), you'll want to use a full-screen theme like #android:style/Theme.NoTitleBar.Fullscreen.
As for hiding the home button I took this approach:
View main_layout = this.findViewById(android.R.id.content).getRootView();
main_layout.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
Unfortunately the STATUS_BAR_HIDDEN flag is deprecated now, but I think some of the other options would have the same effect. Regardless, the best you can achieve within Android's intended use is to temporarily hide the navigation buttons (home and back). A tap on the screen will bring them back.