Asociar la aplicación con el formato de Epub
Estoy en una pérdida para conseguir mi aplicación para registrarse con archivos epub en un dispositivo móvil. Tengo un conjunto de filtros de intención en mi manifiesto android, pero todavía no se abrirá con archivos epub en la tarjeta sd. Cuando paso a través de la aplicación File Explorer
, muestra el archivo, pero cuando hago clic en él, dice "El sistema no admite este tipo de archivo:". Cuando descargo un archivo de Internet y luego navego a la carpeta de descarga utilizando la aplicación de descargas, el archivo no aparece en absoluto (aunque esté en la carpeta de descarga del explorador de archivos). También he intentado conseguir que los archivos de epub aparezcan con la intención del selector de archivos ( Intent.ACTION_OPEN_DOCUMENT
), pero no hay suerte. Supongo que los dos últimos no aparecen porque la intención se carga con Intent.CATEGORY_OPENABLE
He intentado varios archivos epub y todo sin éxito.
- android - obtener texto fuera de la vista web
- Visualización de imágenes con EPUBLIB
- Cómo agregar epublib a Android Studio y ejecutarlo
- Renderizar archivos epub en android
- Android: desarrolla una aplicación para revistas
¿Puede alguien ayudar a averiguar lo que estoy perdiendo?
Uso de KitKat y teléfonos superiores.
Nota: esto funciona con la descarga desde Internet. Si voy a un enlace epub, esto funciona, pero no desde el sistema de archivos.
<!-- Open File Types --> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:host="*" android:scheme="file"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:host="*" android:scheme="file" android:mimeType="text/plain"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="file"/> <data android:mimeType="application/epub+zip"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="http"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="http" android:mimeType="text/plain"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="http"/> <data android:mimeType="application/epub+zip"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="https"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="https" android:mimeType="text/plain"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="https"/> <data android:mimeType="application/epub+zip"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="content"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="content" android:mimeType="text/plain"/> <data android:pathPattern=".*\\.epub"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="content"/> <data android:mimeType="application/epub+zip"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*" android:scheme="book"/> </intent-filter> <intent-filter android:icon="@raw/icon" android:label="ePub File" android:priority="1" > <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" /> <data android:scheme="https" /> <data android:scheme="ftp" /> <data android:scheme="file" /> <data android:host="*" /> <data android:mimeType="*/*" /> <data android:pathPattern=".*\\.epub" /> </intent-filter>
Actualizar:
Buscando respuestas a las siguientes preguntas para la recompensa:
- ¿Cómo puedo obtener el sistema de Android para reconocer que los archivos epub en el almacenamiento interno o externo se puede abrir con mi aplicación?
- ¿Cómo obtengo el explorador de archivos predeterminado ( Storage Access Framework ) para mostrar archivos epub?
- Implementación de la paginación en formato de libro HTML
- Trabajar con archivos ePub en android
- Biblioteca PDF para renderizar los archivos PDF en Android
- Descomprimir el archivo ePub no funciona
- Hacer el epub libro en android?
- Cómo dividir EPUB XHTML páginas dinámicamente en Android?
- Buscando referencias de código abierto para la programación de libros electrónicos en Android
- ¿Cuál biblioteca es mejor para leer PDF, EPUB & html en Android?
¿Cómo puedo obtener el sistema de Android para reconocer que los archivos epub en el almacenamiento interno o externo se puede abrir con mi aplicación?
El "sistema androide" no tiene mucho que ver con él, particularmente hoy en día.
Soporte en MimeTypeMap
(o, más exactamente, libcore.net.MimeUtils
de las clases marco) para .epub
/ application/epub+zip
se ha añadido ~ hace 35 horas . Presumiblemente, se mostrará en una futura edición de Android. Antes de eso, los únicos administradores de archivos que usarán ese tipo de MIME son los que lo agregaron en sí mismos.
En un nivel alto, cuando se enfrenta a un problema como este, la solución es bastante simple:
-
Busca otra aplicación que haga lo que quieras (en este caso, otro lector de EPUB)
-
Utiliza la aplicación Navegador de aplicaciones para ver cómo se ve el manifiesto de esa aplicación y lo que eligió para las estrofas
<intent-filter>
En general, normalmente veo un <intent-filter>
con un esquema y un tipo MIME o un esquema, host y ruta de acceso. No es probable que tenga el tipo MIME y las cosas de ruta, como si el Intent
no tiene explícitamente el tipo MIME, y Android no sabe cómo asignar esa extensión específica a su tipo MIME, su <intent-filter>
puede No coinciden
Además, tendrá que probar con varias aplicaciones de "Administrador de archivos", ya que Android no tiene un administrador de archivos y, por lo tanto, puede experimentar errores o limitaciones en el que está probando.
¿Cómo obtengo el explorador de archivos predeterminado (Storage Access Framework) para mostrar archivos epub?
Especifique el tipo apropiado de MIME y ore por un milagro.
Una vez más, hasta que Android ofrece un poco más de soporte incorporado para la asignación de .epub
al tipo MIME, dependen de los proveedores de almacenamiento que suceden a saber que .epub
mapas para el tipo de application/epub+zip
MIME. Algunos proveedores lo harán, porque están recibiendo esa información de algún servidor back-end que puede conocer más tipos MIME que el propio Android. Algunos proveedores no pueden, como el proveedor de MediaStore
de Android de MediaStore
de lo que está en el almacenamiento externo, ya que dudo que MediaStore
tiene su propio soporte local para los archivos EPUB.
- ListView scrollbarStyle con margen / relleno
- Archivo bajo / res / raw no accesible en Debug buildvariant