No se muestran las aplicaciones resueltas por Intenciones con "EXTRA_INITIAL_INTENTS" adicionales
Estoy tratando de compartir files con clientes de correo electrónico y Google Drive. Ahora, en el siguiente código, solo se abre la unidad de Google y los clientes de correo electrónico no se abren en absoluto. Puedo proporcionar el código Java equivalente del siguiente código si es necesario
val photoURI: Uri = FileProvider.getUriForFile(this, "com.emerson.oversight.com.emerson.oversight.provider", File(this.cacheDir.path + "/SensorReport.pdf")) val emailIntent = Intent(Intent.ACTION_SENDTO) emailIntent.data = Uri.parse("mailto:") emailIntent.putExtra(Intent.EXTRA_STREAM, photoURI) emailIntent.putExtra(Intent.EXTRA_EMAIL, "asd@dsa.dsa") emailIntent.putExtra(Intent.EXTRA_SUBJECT, "dsadsada") emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) val driveIntent = Intent() driveIntent.`package`= "com.google.android.apps.docs" driveIntent.action = Intent.ACTION_VIEW val fileID = File(this.cacheDir.path + "/SensorReport.pdf") val url = "https://docs.google.com/file/d/" + fileID driveIntent.data = Uri.parse(url) val openInChooser = Intent.createChooser(driveIntent, getString(R.string.share_using)) openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, arrayListOf(emailIntent)) startActivity(openInChooser)
Por favor ayuda
- En Kotlin, error de deserialization de Jackson con class de datos
- LIBGDX 3D: desactivar texturas en shader: OpenGL
- Reduce on Range throws NoClassDefFoundError: kotlin / IntIterator
- Excepción lanzada al usar @Service en Kotlin
- JPA, Spring Data y Kotlin - Guardar loggings
- Los modos de enfoque automático no funcionan en Samsung S8
- cómo hacer que el subset múltiple sea constante en kotlin
- 'x' no es una function al pasar parameters en Kotlin Javascript
- ¿Cómo puedo dividir la secuencia del número integer en ranges (java \ kotlin)
- Spring Boot no puede ejecutar una testing individual en IntelliJ
- Escribir un timer usando Handler en Kotlin
- ¿Por qué mi código inalcanzable?
- ¿Cómo descartar el dialog de alerta de Android a través de setOnEditorActionListener?
Casi getPackageManager().queryIntentActivities
allí, la única pieza que falta en el rompecabezas es el getPackageManager().queryIntentActivities
que devolverá todas las actividades que pueden manejar tu bash de correo electrónico. Con ResolveInfo devuelto, puede generar un bash para que cada opción de correo electrónico se muestre en el selector. Luego puede pasar el set de esos bashs como Intent.EXTRA_INITIAL_INTENTS
. Incluso puede excluir ciertos packages si lo desea aquí. Entonces, la parte final de tu código se vería así:
val openInChooser = Intent.createChooser(driveIntent, getString(R.string.share_using)) val emailOptionIntents = mutableListOf<Intent>() val resInfo = getPackageManager().queryIntentActivities(emailIntent, 0) if (!resInfo.isEmpty()) { for (resolveInfo in resInfo) { val emailOptionIntent = Intent(Intent.ACTION_SENDTO) emailOptionIntent.data = Uri.parse("mailto:") emailOptionIntent.putExtra(Intent.EXTRA_STREAM, photoURI) emailOptionIntent.putExtra(Intent.EXTRA_EMAIL, "asd@dsa.dsa") emailOptionIntent.putExtra(Intent.EXTRA_SUBJECT, "dsadsada") emailOptionIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) emailOptionIntent.`package` = resolveInfo.activityInfo.packageName emailOptionIntents.add(emailOptionIntent) } } openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, emailOptionIntents.toTypedArray()) startActivity(openInChooser)
- Error de Gmail "No se puede adjuntar file"
- ¿Hay alguna forma de iniciar session en PayPal utilizando htmlunit?