I have a client who is interested in developing a kiosk for him. He is using a particular tablet device where he wants to use the Android ICS as the operating system to control the hardware of the device.
Now he wants an app developed on top of it which will work as the mother app.
The feature of this mother app is it will lock out all the other features available to user. As I know it is possible to develop such an app.
Now the problem I'm facing is his next requirement.
The client wants this mother app to control the installation of apps on the device and these apps will be installed as the child apps of this mother app. According to his requirements he wants this mother app to control the life cycle of the child apps.
Now I couldn't find any solution to do this from an app (My bad!). So I thought of the option to change the Application Framework of the Android itself to meet this requirement (possibly creating a custom ROM).
What do you suggest? Is there any way to do this from an app itself or do I have to modify the Application Framework for it.
Related
I want to ask about native app development. My client asking me for making application where the app can easily remove another app on the device (I mean Uninstall another app programmatically) with a spesific shortcut (for example maybe by shake device etc). It's possible to make this app on newest android OS?
if possible, can you give me a reference? or example code to remove another app? thank you!
I have implemented a MusicPlayerService by following the official guide from the Android Developers site. At multiple places, I have found the information that this should be enough to make my app ready for Android Auto.
But if I open that (just the phone interface because I don't have a compatible car at the moment), the list of music providers just contains Google Music and the already installed VLC media player. To verify I also downloaded, compiled and installed the Universal Music Player example, which isn't showing up either.
Do I have to enable something or even upload the app to Google Play first?
EDIT: I now tested it with the Desktop Head Unit and it works. Afterwards the service is also visible on the phone interface. But this is not the expected behavior, right?
Only apps installed through Google Play will be shown in Android Auto. If you want to test your app with the phone interface, you'll need to enable developer mode and the 'unknown sources' option in the developer settings.
https://developer.android.com/training/auto/testing/index.html#phone
Using Tasker for Android (link: https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm) and a widget-composing tool, Zooper (link: https://play.google.com/store/apps/details?id=org.zooper.zwpro ) I have automated my Android phone to automatically register certain data whenever the phone enters or leaves certain WLAN-covered areas or connects/disconnects to certain BlueTooth devices.
The registered data is kept in simple Tasker-variables and a widget simply displays (some of) the contents of those variables to the user - it is really that simple.
Together this system works like an ever running background application with an always-updated (simple) user interface (the widget).
I am so happy with what this system does that I now want to convert the whole thing into a real, yet very tiny Android app that can be download and installed from Google Play.
However, I never developed an Android app before (and not an IOS app either!). But being a professional C# developer (and former C++ developer) for Windows desktop applications and Windows services for many years now, I feel confident that I can also learn how to make such a simple Android app, even if it involves programming languages with which I’m not so confident by now (Java for example).
What I need is a few directions to get me started the right way:
Which tools do I need for making such a simple app?
Can it be done in Visual Studio, or do I need to use Eclipse or
Xamarin?
Can it be done in C# or must it be done in Java?
Do I need to buy licenses for development tools (other than Visual
Studio) or can it be done with free software?
How would you go about the whole thing?
Any input will be much appreciated!
I have an app which offers in app purchases of watch faces for Android Wear.
The new API however seems to push all faces implementing the CanvasWatchFaceService to the Android Wear application - perpetually making all my paid faces free!
How can I still allow users to perform in-app purchases without them directly being able to access the faces within Android Wear?
Needless to say if the purchase is successful, only then I would want the watch face to be visible in the Android Wear gallery.
Since watchfaces are registered as a service (https://developer.android.com/training/wearables/watch-faces/service.html), and there is no option to register services programmatically. I don't see any option to offer them as in-app payment feature.
From my point of view you got three options:
Make a demo version with less features (free / pro version)
Put a "this is a demo version" text on the watch if it wasn't purchased (I wouldn't recommend this solution since you will get bad ratings for sure)
Wrap each developed watchface in it's own app and publish it as a payed app
After a user opens my application I don't want them to be able to get out. So when they press the home or back button it doesn't let them exit the app. I know there are ways using a service to keep the app always running in the background, but I don't even want them to even exit.
Is this even possible, if so how? Without having to hack the kernel.
I know this sounds odd, but it is not for a commercial app, but for my lab, it will never be on GooglePlay. The tablets will be given to little kids and they will take a test on it, so I can't have them using youtube or anything else.
Related post: Android, How to make the task of the app unclosable? Only closable by task killing
The answer by CommonWare seems to indicate that kernel hacking is the only way, but is it?
Also I am using Android L.
there is no official support yet - there will be support with android L via the Task locking API
The L Developer Preview introduces a new task locking API that lets
you temporarily restrict users from leaving your app or being
interrupted by notifications. This could be used, for example, if you
are developing an education app to support high stakes assessment
requirements on Android. Once your app activates this mode, users will
not be able to see notifications, access other apps, or return to the
Home screen, until your app exits the mode.
https://developer.android.com/preview/api-overview.html
EDIT: as you said you use L this got obsolete - but I leave it here as a hint for others
said that - you are also able to get this kind of work without root today if you have to ( e.g. kiosk mode app on a certain hardware ). It is not simple - and no solution that works for all devices - but if you need it you can get it work with tricks like:
- reacting on home-screen intent ( and setting it as default )
- when you go to background - bring your self foreground again
- ..
It seems google has some thing called COSU for setting up single-purpose devices
Android 5.0 Lollipop introduced two new ways to configure Android
devices for a single purpose:
With app pinning, the device user can temporarily pin specific apps to the screen.
With lock task mode, a user can’t escape the app and the Home and Recents buttons are hidden. Additionally, lock task mode gives the IT
administrator a more robust way to manage COSU devices, as discussed
below.
and
As an IT administrator, you can configure Android 6.0 Marshmallow and
later devices as corporate-owned, single-use (COSU) devices. These are
Android devices used for a single purpose, such as digital signage,
ticket printing, point of sale, or inventory management. To use
Android devices as COSU devices, you need to develop Android apps that
your customers can manage.
from here
and there is a code lab for it here
for earlier versions of android here i founded How-To Create a Working Kiosk Mode in Android which shows some hacks for disabling buttons and restarting the application after boot and lock. note that most of these hacks, don't work on android 6 and later