Abrir búsqueda global como superposición

Estoy escribiendo un lanzador y quiero poder abrir una búsqueda como una superposición en lugar de una pantalla completa en la aplicación de Google.

Hasta ahora solo encontré una forma de abrir la búsqueda en la pantalla completa de Google App como sigue (tomada del código fuente de AOSP Launcher3):

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; } } 

Sé que es posible porque otros lanzadores como Nova y Action Launcher lograron hacerlo …

Lo averigué

 public static boolean showGlobalSearchOverlay(Context context) { ComponentName globalSearchActivity = new ComponentName("com.google.android.googlequicksearchbox", "com.google.android.apps.gsa.queryentry.QueryEntryActivity"); Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(globalSearchActivity); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { context.startActivity(intent); return true; } catch (Throwable e) { Timber.w("Unable to show search overlay"); return false; } } 
  • La aplicación se reinicia completamente cuando se inicia con el icono de prensa en el lanzador
  • Cómo obtener la lista de todos los accesos directos instalados que se encuentran en el inicio de pantalla de inicio en android
  • Eliminar acceso directo a mi aplicación desde el lanzador de acciones en ics
  • La aplicación no aparece en el lanzador debido a <data android: scheme = "http" /> en AndroidManifest.xml
  • ¿Cómo iniciar el servicio en el inicio del dispositivo en android?
  • Crear una aplicación de lanzamiento en android
  • ¿Cómo instalar el paquete de iconos en el lanzador personalizado?
  • Android: elegir el lanzador por defecto programatically
  • ¿Cuáles son las formas alternativas de lanzar mi aplicación?
  • Animación de Android al ejecutar una nueva aplicación
  • Quitar actividad como iniciador predeterminado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.