Después del lanzamiento de la clase android 4, CalendarContract
es introducir el evento de escritura en el calendario del dispositivo. Pero si he creado mi aplicación usando API nivel 8 y ahora quiero usar esta clase CalendarContract
en mi proyecto hecho usando API nivel 8, porque en API nivel 8 uso API no documentada para escribir evento en el calendario del dispositivo y este código doen ' t funciona para Android 4. Entonces, ¿es posible usar la clase CalendarContract
en mi proyecto sin cambiar la versión sdk en el archivo manifiesto, porque si cambio la versión sdk a 14 entonces me permite usar la clase CalendarContract
y puedo resolver la problema para Android 4. Pero al hacerlo, mi aplicación no comenzó a ejecutarse en api 8 -13, y que no quiero hacer porque mi aplicación es en vivo en el mercado. Entonces, ¿hay alguna manera posible de resolver este problema? Por favor, explique mí con un ejemploCómo usar la clase CalendarContract en el nivel de la API 8
Respuesta
encontrar una manera de encontrar el nivel de la API mediante programación ... si se puede entonces probablemente usted puede utilizar código apropiado para niveles diff Api ... esto puede ayudar Programmatically obtain the Android API level of a device?
No puede utilizar CalendarContract
en dispositivos Android con menos de Nivel API 14.
Eso significa que no puedo resolver mi problema. ¿Por qué mi código anterior para escribir evento en el calendario del dispositivo no funciona? No funciona para Android 4. ¿Es porque he usado Api no documentado? ¿Hay alguna forma de resolver esto? – Rahul
Resumir el acceso al calendario y tener diferentes implementaciones de la interfaz de acceso al calendario, una para la interfaz anterior y no confiable del calendario y otra para CalendarContract. – Jens
puede por favor explicarme con un simple ejemplo. No tengo idea de eso. – Rahul
Me las arreglé para solucionar este problema hoy uniendo diferentes consejos encontrados en SO y en la web más amplia.
Básicamente utilizo un vigilante llamado CallendarAccess, y dos clases con la misma estructura método público, uno llamado CalendarLT14 en el que el método llama determinación de la forma no documentada de edad, y CalendarGTE14 que utilizó el Android correcta V14 + forma de hacer las cosas.
Ambas estas clases se extienden un auto escrito clase abstracta llamada CalendarService que contienen métodos abstractos comunes a los públicos de CalendarLT14 y CalendarGTE14.
Un problema al hacer esto es que las versiones de Android menores que IceCreamSandwich (v14) no compilarán código como CalendarContract callendarContact; que está escrito para versiones posteriores. Para resolver esto, establece en el manifiesto la versión de destino a 14 (Android 4.0), pero la versión mínima a 7 (android 2.1). Esto significa que el código 4.0 compila y no presenta ningún problema con las versiones anteriores porque nunca se invoca. Método de ejemplo del cuidador a continuación.
public CalendarService getInstance()
{
if (Build.VERSION.SDK_INT >= 14)
return CalendarGTE14(context)
else
return CalendarLT14
}
Esta solución significa que el cuidador pueda regresar de forma selectiva un objeto que va a resolver con el código correcto correspondiente a la versión de Android en uso y totalmente transparente para el programador realizar llamadas al cuidador o CalendarService clase.
- 1. setAdapter "La llamada requiere el nivel 11 de API (el mínimo actual es 8): android.widget.AbsListView # setAdapter"?
- 2. Cómo usar AndroidHttpClient (nivel de API 8) y contraseña de contraseña de nombre de usuario?
- 3. Mimic Context.getExternalFilesDir() antes de Android API Nivel 8?
- 4. ¿Cómo registro mi cuenta de Google en el emulador de Android ejecutando 2.2 api nivel 8?
- 5. android - La llamada requiere API nivel 9 (el mínimo actual es 8): android.os.StrictMode # setThreadPolicy
- 6. La aplicación no especifica el nivel de API
- 7. Error al cambiar el nivel de la API de Android?
- 8. ¿En ruby cómo usar la variable local de nivel de clase? (Pregunta de un novato rubí)
- 9. ¿Cómo detectar el nivel de zoom de la página en IE 8?
- 10. ¿La mejor API para audio de bajo nivel en Windows?
- 11. Cómo usar Base64 (incluido en Android desde la api 8 (2.2)) en un proyecto Android api 3 (android 1.5)?
- 12. Cómo hacer android: background = "? Android: attr/seleccionableItemBackground funciona en API nivel 8
- 13. Android 4.0 - Nivel de API 14 vs API de Google (Google Inc.) - Nivel de API 14: ¿Cuál es la diferencia?
- 14. ¿Cómo usar la clase XmlReader?
- 15. Cómo usar SSL en la clase TcpClient
- 16. En IntelliJ, cómo establecer el nivel de la API de Android
- 17. Android: Uso de PopupMenu en el nivel de API 9
- 18. cómo usar la clase anidada en otra clase en java?
- 19. Android - Uso de view.setX() y setY en api 8
- 20. Girar vista de anuncio con API 8
- 21. Cómo usar la clase soap en php (con ejemplo)?
- 22. La clase WebClient no existe en Windows 8
- 23. Cómo usar la API de comandos de voz en Android
- 24. Usar RedirectToAction en la API web
- 25. Primero, el código: ¿la API api influye en la IU?
- 26. ¿Cómo usar la API de Windows en MinGW?
- 27. ¿Cómo usar la API de bajo nivel para el almacén de datos en el motor de la aplicación de Google? ¿Es mala?
- 28. ¿Cómo configuro el nivel log4j en la línea de comando?
- 29. Rotación ImageView en Android <API nivel 11
- 30. ¿Qué significa nivel de API?
Eso lo sé, pero después de encontrar el nivel Api, ¿qué debo hacer? Puede explicarme – Rahul
usted crea una biblioteca que tiene un método para obtener eventos ... tome el nivel api como argumento y en base a eso use la forma apropiada para obtener eventos .. – ngesh
me puedes mostrar con un ejemplo. No sé cómo crear mi propia biblioteca y cómo agregar un método para obtener eventos – Rahul