I am developing an Android app and I am going to sell it to a firm.
So, I will not use Google Play or other app stores like Amazon, etc...
How can I protect my app from other people?
Because we already made a deal with that firm.
That firm will use our app in only ten android devices.
I did not want to work our app on any other devices.
I researched about mac addresses to protect but I am not pretty sure.
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
I've written an android app in Android studio, and would like to add android wear functionality. I've looked into it online, but I can only find help on how to make a stand-alone android wear app. Is it not possible for me to just add a new activity to the application that is used by the smart watch, or do I have to create a whole new app for the smart watch that requests data from the main phone application?
It depends on what it is you need the wear app to do?
In the past I have decided all I actually needed was the ability to respond to notifications on the watch so therefore I just modified the notifications to work well on android wear.
Example. https://developer.android.com/training/wearables/notifications/creating.html
But if for example you need the ability to start the app from the watch and work without any phone interaction, you will need to create a stand alone android wear module.
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
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.