Cómo ocultar la ventana Intent Chooser en android?

Cuando hago clic en el botón iniciar una actividad para el video de youtube como este:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM"))); 

Si utilizo este su redireccionamiento al chooser de la intención para abrir esa URL del vídeo en el hojeador o la aplicación de youtube. Cómo seleccionar la aplicación predeterminada como youtube mediante programación?

Mi salida debe abrir ese video directamente en el reproductor de youtube. ¿cómo? ¿alguna idea?

Solicitar una Actividad específica es arriesgado, ya que YouTube puede cambiar el nombre del paquete que seguirá con el rompimiento de su aplicación.

Además, no hay garantía de que el reproductor YT esté instalado en todos los dispositivos Android.

Para eludir, aquí hay un código que busca una actividad de youtube. Si lo encuentra, devuelve una intención de usarlo directamente, de lo contrario, mantiene una intención "genérica" ​​que dará lugar a que se muestre el selector de intenciones del sistema.

 /** * @param context * @param url To display, such as http://www.youtube.com/watch?v=t_c6K1AnxAU * @return an Intent to start the YouTube Viewer. If it is not found, will * return a generic video-play intent, and system will display a * chooser to ther user. */ public static Intent getYouTubeIntent(Context context, String url) { Intent videoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); final PackageManager pm = context.getPackageManager(); List<ResolveInfo> activityList = pm.queryIntentActivities(videoIntent, 0); for (int i = 0; i < activityList.size(); i++) { ResolveInfo app = activityList.get(i); if (app.activityInfo.name.contains("youtube")) { videoIntent.setClassName(app.activityInfo.packageName, app.activityInfo.name); return videoIntent; } } return videoIntent; } 

Usted está utilizando una intención implícita, que puede coincidir con más de un receptor, por lo tanto, el selector. Puede intentar cambiar a un modelo de intención explícita, si puede averiguar cómo orientar la actividad de youtube directamente. Consulte la documentación del desarrollador sobre las intenciones explícitas o implícitas.

Sin embargo, parece que la razón de la intención chooser es dejar que cada usuario decida por sí mismos qué jugador utilizar. ¿Hay una buena razón para evitar esto? ¿Qué pasa si alguien ha instalado un reproductor de vídeo diferente al que prefieren?

Editar: Para llamar a una intención explícita, necesita saber el nombre de la actividad que está intentando iniciar y pasa detalles adicionales como extras, es decir:

 Intent intent = new Intent(this, YouTubeViewerActivity.class); intent.addExtra("URI", Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")); startActivity(intent); 

Sin embargo, he completado el hecho de que hay una clase de YouTubeViewerActivity. Como he dicho, por lo general, si solicita algún servicio externo, como la aplicación de YouTube, para realizar una acción, utilice el modelo de intenciones implícitas como el que tiene, para que el usuario controle sobre qué aplicación se utiliza.

  • Cómo seguir reproduciendo video mientras cambia a modo horizontal android
  • Edición de metadatos de un archivo de vídeo en Android
  • Vídeo de escala de matriz en TextureView Android
  • Configuración de encabezados para streaming de vídeo mp4 y reproducción de archivos con Exoplayer
  • Decodificación h264 ByteStream en Android
  • Cómo hacer que una videoview NO se inicie automáticamente después de preparado
  • Marco de vídeo de captura de android
  • Corregir archivo 3GP después de la transmisión desde Android Media Recorder
  • Cómo encontrar y reproducir videos descargados por Lynda.com Aplicación para Android o Windows
  • ¿Cómo puedo capturar videos de baja resolución en Android de forma confiable en una amplia gama de dispositivos?
  • Cómo incrustar VLC media player en mi aplicación para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.