Extensión Android SDK – SDKExtensions

Contenidos

Extensión Android SDK – SDKExtensions

El 9 de enero de 2023 leí esta publicación en el blog de desarrolladores de Android que suena bastante interesante.

Extensión del SDK de Android

El Componentes del sistema modular (MSC) En androide 10 y más alto hazlo posible compatibilidad con versiones anteriores entre nueva funcionalidad Y Versiones de Android lanzadas anteriormente.El equipo de Android lanzó un nuevo marco llamado Extensiones SDK Esto ayuda a que el desarrollo sea más flexible mediante el uso de nuevas API que estarán disponibles para versiones anteriores de Android. Marco ayuda a los desarrolladores con la integración nuevas API como selector de fotosintroducido en Android 13, incluso con versiones anterioresen última instancia, lo que conduce a una mejor experiencia de usuario y una mayor productividad del desarrollador.

Comprueba cuáles Extensiones SDK Son accesible en uno Dispositivo con adb

getprop shell adb | grep build.versión.extensiones

Uso de las API del selector de fotos en versiones anteriores con SDKExtensions

Comprueba cuáles Extensiones SDK ejecución Es necesario

ACTION_PICK_IMAGE

Instale SDK Tools para comenzar con SDKExtensions

  • Usar Estudio AndroidAbre esto administrador de SDK, Y Instalar El Entrada de la plataforma Android SDK con el correspondiente nivel de desarrollo
  • En nuestro caso necesitamos API 33 con un nivel de extensión ≥ 2

Configurar el proyecto A empezando con Extensiones SDK

  • build.gradle.kts o build.gradle de la aplicación

Android { compileSdk = 33 compileSdkExtension = 4 … }

API de selección de fotos son solo Disponible para androide ≥13

🙏 gracias A Extensiones SDK porque ahora está disponible todo el camino de vuelta API 30 (Android R/11) 🎉

  • Antes Extensiones SDK Nosotros revisar El Disponibilidad de API del selector de fotos Usa el siguiente código 🧑‍💻👩‍💻:
  • Devuelve verdadero si el versión de Android Es ≥13 cual restringe el uso de esta API solamente ≥13 😢

// La forma heredada de comprobar la disponibilidad de PhotoPickerfun es PhotoPickerAvailable(): Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU

  • Aquí están algunas Estadísticas 📈 de la Asistente para nuevos proyectos de Android Studio acerca de Dispositivos ellos caminan androide 11/13

Estadísticas de uso de Android 30(11) y Android 33(30) del nuevo asistente de proyecto – Android Studio

  • Como se puede ver, Extensiones SDK realmente nos ayudan a cubrir casi el 50% de dispositivos 💚 cuando se trata de proporcionar la función para elegir fotos/videos usar API de selección de fotos

Tenemos 2 opciones para Implementación de la API Photo Picker

  1. A mano revisar El Disponibilidad uno API
  2. Usar ActividadResultadoContratos

Implementación manual

  1. Comprobar si la selección de fotos está disponible o no

fun isPhotoPickerAvailable(): Boolean = cuando { Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> true Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) >= 2 -> verdadero más -> { falso } }2. startActivityForResult y proceda en consecuencia o use la API ActivityResult que se recomienda

Uso de ActivityResultContracts.PickVisualMedia/PickMultipleVisualMedia

  • Ofrece una función complementaria pública llamada esPhotoPickerDisponible() esto nos ayudará a verificar que Disponibilidad de API de selección de fotos
  • Aquí está el código para este método:

Como puede ver, primero verifique si el La versión del SDK es ≥13si no, entonces verifica esos Versiones de SDKExtension que ayuda a los desarrolladores a usarlo para dispositivos más antiguos

@JvmStaticfun isPhotoPickerAvailable(): Boolean { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { true } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { // getExtension se considera como solo una parte de Android Tiramisu mientras que SdkExtensions // se agregaron en Android R getExtensionVersion(Build.VERSION_CODES.R) >= 2 } else { false }}

  • Con este método A Consulta la disponibilidad del PhotoPicker

Diversión isPhotoPickerAvailable(): Boolean = ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable()

i̵s̵P̵h̵o̵t̵o̵P̵i̵c̵k̵e̵r̵A̵v̵a̵i̵l̵a̵b̵l̵e̵(̵)̵ — Obsoleto🤯

Desde la versión de actividad 1.7.0-alpha04

  • Tenemos una nueva versión de isPhotoPickerAvailable(contexto:Contexto) que tiene la verificación adicional de que el dispositivo tiene Apoyo Para el Selección de fotos comprobando la versión de Android en ejecuciónEl Versión de la extensión del SDK o el Selector proporcionado por Google Play Services

divertido isPhotoPickerAvailable (contexto: Contexto): Boolean { return ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable (contexto = contexto)}

Componible a elegir una foto 🌅

@Composablefun PhotoPickerResultComposable() { val context = LocalContext.current var resultado de RememberSaveable { mutableStateOf(nulo) } val pickMedia = RememberLauncherForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri -> // se invoca la devolución de llamada después de que el usuario haya seleccionado un elemento multimedia o haya cerrado // el selector de fotos. when { uri != null -> { Log.d(DIA, "PhotoPickerResultComponible:$uri") resultado = uri } más -> { Registro.d(ETIQUETA, "Ninguna imagen 🌅 seleccionada"). , ), ) de lo contrario -> Toast.makeText(contexto, "Selección de fotos no disponible"Toast.LENGTH_SHORT).show() } }, ) AsyncImage( model = result, contentDescription = "Imagen de la selección de fotos."contentScale = ContentScale.Crop, modificador = modificador .size(200.dp, 200.dp) .clip(CircleShape), ) }}

Código de muestra

GitHub – navczydev/SDKExtensions: ejemplo de SDKExtensions con la biblioteca de carga de imágenes COIL, Photo Picker, Kotlin, Jetpack Compose

Demostración 👯 💃 🖼🖼 👯 💃

Demostración de PhotoPicker API ejecutándose en Android 11 SDK Extensions 4

referencias

  • Extensiones SDK | desarrollador de Android
  • Extensión del SDK de Android
  • ActivityResultContracts.PickVisualMedia | desarrollador de Android
  • Selección de fotos | desarrollador de Android

Mantenerse en contacto

  • Nav Singh (@navczydev@androiddev.social)
  • navczydev – descripción general

https://www.linkedin.com/in/navczydev/JavaScript no está disponible.


Extensión SDK de Android: SDKExtensions se publicó originalmente en ProAndroidDev en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.