Mi requisito es posible abrir el archivo de activos de una aplicación desde otra aplicación a través de proveedor de contenido. (Estoy exponiendo ese archivo con la aplicación ContentProvider)Problema al abrir el archivo de activo con la ayuda del proveedor de contenidos
soy capaz de abrir algunas archivos y leer, pero al abrir algunos archivos recibo una excepción. Encuentre la implementación para abrir el Archivo de Activos.
@Override
public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException {
AssetManager am = getContext().getAssets();
String file_name = uri.getLastPathSegment();
if(file_name == null)
throw new FileNotFoundException();
AssetFileDescriptor afd = null;
try {
afd = am.openFd(file_name);
} catch (IOException e) {
e.printStackTrace();
}
return afd;//super.openAssetFile(uri, mode);
}
Algunas veces, am.openFd(file_name);
es tirar una excepción diciendo que,
java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
at android.content.res.AssetManager.openAssetFd(Native Method)
at android.content.res.AssetManager.openFd(AssetManager.java:329)
at com.pineone.swfinstaller.SwfProvider.openAssetFile(SwfProvider.java:25)
at android.content.ContentProvider$Transport.openAssetFile(ContentProvider.java:218)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:234)
at android.os.Binder.execTransact(Binder.java:288)
at dalvik.system.NativeStart.run(Native Method)
embargo, el mismo archivo que pueda abrir en mi PC o incluso en un dispositivo Android de alguna otra manera.
¿Alguien me puede señalar, en qué escenarios, vamos a obtener esta excepción.
Gracias de antemano.
Si cambiamos la extensión de esta manera, ¿esto no causará problemas al usar el archivo en la aplicación si está esperando algo más? – clu