I am writing a launcher and want to be able to open the search as an overlay, rather than a full screen in a Google application.
So far, I have found a way to open the search in full-screen Google App as follows (taken from the AOSP Launcher3 source code):
public static boolean openSearch(Context context) { SearchManager searchManager = (SearchManager) context.getSystemService(Context.SEARCH_SERVICE); ComponentName globalSearchActivity = searchManager.getGlobalSearchActivity(); if (globalSearchActivity == null) { Timber.w("No global search activity found."); return false; } Intent intent = new Intent(android.app.SearchManager.INTENT_ACTION_GLOBAL_SEARCH); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setComponent(globalSearchActivity); Bundle appSearchData = new Bundle(); appSearchData.putString("source", "launcher-search"); intent.putExtra(android.app.SearchManager.APP_DATA, appSearchData); intent.putExtra(android.app.SearchManager.QUERY, ""); intent.putExtra(android.app.SearchManager.EXTRA_SELECT_QUERY, true); try { context.startActivity(intent); return true; } catch (ActivityNotFoundException ex) { Timber.w("Global search activity not found: %s", globalSearchActivity); return false; } }
I know this is possible because other launchers, such as Nova and Action Launcher, managed to do this ...
source share