THE SETUP:
Developing API 16 Android app with Eclipse and installing on Tablet when testing.
THE PROBLEM:
Every time I use Eclipse to install the app and run it on the actual tablet, it creates an application icon for every single activity in the application that is visible from the main dashboard, whether it is called or not.
THE QUESTIONS:
Why is this happening?
How do I stop it?
Loosely related question - I've seen many people looking for an easy way to make a simple installable file to put the appplication onto a tablet. I have considered using a signed application package and a third-party app installer from SD card. Are there any other suggested ways to do this.
Why is this happening?
If we have to guess, it's because you have the MAIN/LAUNCHER <intent-filter> on all those activities in your manifest.
How do I stop it?
Only put that <intent-filter> on the activity (or activities) that should appear in the launcher.
I've seen many people looking for an easy way to make a simple installable file to put the appplication onto a tablet.
I have no idea what you consider "a simple installable file" is.
I have considered using a signed application package and a third-party app installer from SD card.
I have no idea what you consider "a third-party app installer" to be.
Related
The app I'm working on is an aggregator of sorts. The company coordinates with other app developers, gets their permission to market and push freemium versions of their apps within our app.
Basically, if you sign up with our app and pay $x, you get monthly access to a bunch of other apps that would've been more expensive if subscribed to directly.
This works but our app ends up needing to side-load the apps and it shows up in the app list and on the Home screen.
But, since we receive an authentic version of the apps from the developers themselves, is it possible for us to install the app on the user's phone without it showing up on the user's Home screen?
The idea is to ensure it doesn't look like we just helped them install an app on their phone.
We want those apps to be exclusively accessible via our app. It shouldn't be accessible via the phone's home screen or app list screen.
I imagine it could be possible since I've seen launchers do it. Some launchers come with smaller apps installed within them that's accessible only via their launcher platform. I'm not too sure how that's achieved though.
Thanks
You should ask your other apps developer to ship their app without the launcher category in the manifest file.
<category android:name="android.intent.category.LAUNCHER" />
Remove the above line from the launcher activity of other applications to prevent it from showing in launcher screen.
It shouldn't be accessible via the phone's home screen or app list screen.
While you can ask the developers to take steps to prevent their app from showing up in the launcher, you cannot prevent the installed app from showing up in the list of installed apps.
The idea is to ensure it doesn't look like we just helped them install an app on their phone.
Then do not install an app on their phone.
Some launchers come with smaller apps installed within them that's accessible only via their launcher platform.
If they do not show up as apps in the list of installed apps, then those are not apps, from an Android standpoint.
My question may look strange but I'll try to explain somehow. Let's imagine there is an Android device with software that adjusts some settings based on application package name - it's a real-life scenario. This software may provide better performance for listed applications and there is no way to add my application to that list. What I'm capable of doing is to release my application under one of listed package names (not to Google Play, just provide APK on GitHub so that anyone who wants to use it will install it manually). And there comes my question:
is it legal to use some company's existing package name for my own application? Is it protected legally? My app is free & open source application.
Just to be clear: I'm not doing this to impersonate "real" application with bad intentions. I just want my application to use full range of device capabilities... And download page will state it clearly & visibly :)
In other words: can I release app with package name e.g. com.google.android.talk? I know that it won't override existing app if someone has it installed etc. (it's not my goal to override some application). I'm just talking about such possibility and legality.
This is totally legal, as you can use whatever String you want for your app/package name.
However, just doing this will most probably be not enough to "impersonate" the other app, as this would be a serious security flaw. First of all, there can never be two apps with the same package name installed.
If the app you speak about is created by a "serious" developer, say Google or one of the OEMs, it will check both package and signature of the app and will therefore know your app is not the same as the replaced app.
Also, when the user tries to install your app, a package conflict will happen, followed by the signature conflict. There are two scenarios here:
If the app you are replacing is a standard app, the user will be able to install your app from adb, but only after thay accept to completely wipe the data of the original app. You have probably seen this dialog while developing stuff.
If the app is provided by the OEM and has system permissions, the installation will simply fail, with no possibility to "overwrite" the app. This can be dodged by having the devices rooted, replacing the .apk file in the system directory and restarting the phone.
Please mind that none of the above will work by just uploading the .apk to the phone. This needs to be done from adb. On-phone installer will just fail.
I'm new to android development.I want to know something about android app installation.Is it possible to have two application in apk file.I mean if I install one apk file will it create two android app icons in launcher list? and Is there any real app in google market so that I can download and have some experiences with that?Please help me.
Thanks
Jeyanthi
You can only install one "application" with an APK. But you can have multiple activities defined for one Application. In your manifest.xml you can create multiple activities, each activity can do it's own task. An application , if seen as something that performs a set of tasks that the user needs, then an activity can also be considered as an application. In that sense, when you have multiple independent activities in your application, each doing it's own task, your necessity is fulfilled.
Update:
After you re-framed your question: Yes, I think it is allowed. Check out Go Launcher.Ex
Update: Article
Android Launcher spam
The above article talks about whether applications that create more than one launcher icons. They have also given examples of applications. And also there are launcher spam applications that just create a load of icons in your launcher. But basically, it is very much allowed, Google does no check.
For technical details, just google how to have an application create multiple launcher icons, you'll loads of info.
Remember how Facebook posted an update awhile back that included a 'Camera' app as well as the regular Facebook app? How can I package 2 apks together in the market so when you download the main application, your actually getting 2 separate applications that are related to each other?
I would rather have my users get both applications at once then trying to hunt for both of them individually. Thanks
Remember how Facebook posted an update awhile back that included a 'Camera' app as well as the regular Facebook app?
No.
How can I package 2 apks together in the market so when you download the main application, your actually getting 2 separate applications that are related to each other?
You can't.
The closest you could get would be to package App B's APK into App A's assets, then when App A is run, copy App B to external storage and initiate an install. This will cost twice the storage space, since you have no way of removing the copy of App B from App A's APK. And, the user will have to go through and approve the install of App B.
My guess is that what you think are two separate applications are really two separate launcher icons, which can be handled in a single APK by having two <activity> elements with the <intent-filter> for MAIN and LAUNCHER, instead of just one.
A very interesting question. I asked that question myself too. But did not get an answer to that. The only thing I could came up with was to use tge (unifficial) Google play store API and then after the User starts the App you could download the second App trough the API. But I assume thats not very elegant
i'm developing a couple of apps at the moment one is an image-processing app, the other a google maps app. when i'm developing them i can only have one app at a time on the phone. is there any reason for this? my phone is a Samsung galaxy portal api2.1.
i'd like to have a few apps on my phone that are in the development process for interview purposes. Is this possible?
The only reason can be that the applications share the same package name. Android uses the package name to distinguish which application to launch (using the launcher or startActivity calls). Is there a reason for you to have the same package name for different applications?
Uninstall both apps on the device. Then after renaming the package names (all instances of them), run both again and it should work.