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?
- No se pueden transmitir vídeos
- MediaPlayer no puede procesar en TextureView después de renderizar imágenes
- Multiplexación de flujos de audio y vídeo en línea en android
- ¿Cómo obtener vídeo de la intención de la cámara y guardarlo en un directorio?
- ¿Por qué mediaPlayer.seekTo (msec) no actualiza surfaceView cuando mediaPlayer está pausado?
Mi salida debe abrir ese video directamente en el reproductor de youtube. ¿cómo? ¿alguna idea?
- Android muestra flujo de vídeo en MediaPlayer y codifica con MediaCodec
- Android: cómo reproducir video de los activos?
- Vídeo remoto Android con Titanio
- Convertir secuencias de entrada de vídeo a RTMP
- MediaMuxer no puede hacer MP4 que son streamable
- El video HTML5 no se reproduce en dispositivos Android
- Detectar la orientación de un vídeo grabado en android
- Obtención de pantalla en negro cuando se agrega ExoPlayer a GLSurfaceView
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 agregar secciones y subheader en el cajón de material android Recyclerview elementos?
- ¿Cómo actualizar cordova-plugin-dispositivo en mi proyecto de meteoros?