How Launcher decides which app icon to place in launcher? - android

I have a very naive question. I've written a program which lists down all the installed applications in my Android OS [I've got total 339 in my case]. But in the Launcher [In my case TouchWiz Home] only 148 application Icons are shown.
My Question is: How does the launcher[TouchWiz Home] decide which app icon to show or not in Launcher?

Launcher will show those activities that have the following intent filters declared in the app's manifest file
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

When a developer publishes an app, he/she can decide if app has "launcher" icon(set a launcher intent in manifest file which is embedded in the APK).
Other apps maybe services or other kind of apps that has no launching behavior.

Related

upload apk on play store without launcher activity?

I have an app which should triggered from my parent app only. In that case I don't need launcher activity (since I am triggering that with my parent app). All I want to know that is play store allow to upload an app without launcher activity. Any lead ?
Unfortunately, Google Play requires that every program have a launcher activity. The AndroidManifest.xml file for the application provides the launcher activity, which is recognized by the following attribute:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intet.category.LAUNCHER" />
</intent-filter>
Therefore, you will need a launcher activity to be specified.

Android wear app in development stage does not appear in watch launcher

When I run my developed android wear app via Android studio, it normally installs in my watch and can be later launched via wear launcher. Not sure what could happen, my latest project does not appear as icon in the launcher anymore, despite I can see the app being launched and fully functional, but after the ambient mode, when the app is moved to the background, I cannot relaunch from the wear. The only way would be to launch it from Android Studio again. The app icon was deleted from watch and I cannot figure out why!
When I check the list of packages in the phone via ADB, I can see it listed, but it never appears among installed apps in the wear, and it did few days ago.
I have LG G Watch R with Android 5.1.1, Android Wear 1.3.0.2166028, and Android Studio 1.5.0/141.2422023
This is what I figured out by trying different manifest setups:
When providing the intent filter to start your main activity in the wear manifest as a combination of action.Main and action.TRACK category with mime type /running, the activity will not register in the launcher with an icon, only voice action OK GOOGLE START RUNNING will launch the activity.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="vnd.google.fitness.TRACK"/>
<data android:mimeType="vnd.google.fitness.activity/running"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
To get the icon back to the launcher I had to make a compromise of loosing the ability to start the main activity with the voice launcher.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /></intent-filter>

How to make app as a default system launcher?

I have developed the launcher application, for the first time when I installed it on device android system pop up chooser dialogue with two options i.e. Always & Just once. I selected "Always" now my app becomes default launcher but issue is when I update the app, the system pop up the same chooser dialogue again, I don't want to show that pop up. How to make the app as a default system launcher? To achieve this, Do I need to create system level app?
I have used following permission to make the app a launcher
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
It is not possible to change the user preferences. Google does not allow developer to change user preferences.
A workaround may be useful, you can check for if your application is default launcher through a service and then prompt user to choose your application as default.
You can find how to check if your application is the default launcher from here (tried this one, it works for me) or here
Then you can prompt the user to select your application if it is not the default launcher. A workaround to do so is given here.

How to open the application from my android application with no launcher

I have 3 android applications. One main application call other 2 applications (main application will be interface for other 2 applications). I would like to have only one icon of this main app. I have 3 applications they can be downloaded separately. Now I need the other applications to check if the main application is installed. If not, download and install main app. But how can I do that, if the secondary applications haven't got LAUNCHER ? Is there any way to do install main app from app without launcher ?
Main app has android manifest:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Secondary app has manifest (because do not want icon)
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
Yes I know how to use code in app where is launcher to check app is installed, but dont want how to operate with, when the launcher is not.
if (installed==false) {
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setData(Uri.parse("https://play.google.com......))
.setType("application/vnd.android.package-archive");
startActivity(promptInstall);
Or second question: is it possible to install app with launcher and then uninstall/hide icon of this app ? Let's say simple I will install all aplications with launcher and then after installation and settings hide icon of app, so that stay only icon of main application.
It looks strange for me, there is not any simple way to do that, simple set if icon will be visible or not. The same as you install software on Windows and you can set during installation if icon will be visible on desktop.

Provide "open" in Market without icon in Launcher

my app is a widget and without main launcher activity people cannot start it from the Market after installing the app; the "open" button just does not show up. How can I enable people to open the app from the Market, so that I can tell them that the app is a widget, but I do not want my app to show up in the launcher? Thanks!
Seems a duplicate question to this one, in the thread Nikolay Elenkov said that you can create a main activity like below, then it will not be shown in the launcher but it can still be launched when the user select the "Open" button. In the activity you can tell the user how to install your widget.
<activity android:name="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- don't show the app icon in the launcher
<category android:name="android.intent.category.LAUNCHER" />
-->
</intent-filter>
</activity>

Categories

Resources