La mia esigenza è quella di aprire il file Asset propria applicazione da un'altra applicazione tramite fornitore di contenuti. (Sto esponendo il file con l'attuazione ContentProvider)problema durante l'apertura Asset file con l'aiuto di provider di contenuti
Sono in grado di aprire alcuni file e leggere, ma durante l'apertura di alcuni file ricevo un'eccezione. Si prega di trovare l'implementazione per l'apertura del file di asset.
@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);
}
Alcune volte, am.openFd(file_name);
è un'eccezione dicendo che,
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)
Ma, lo stesso file posso aprire nel mio PC o anche in un dispositivo Android in qualche altro modo.
Qualcuno può indicarmi, in quali scenari, otterremo questa eccezione.
Grazie in anticipo.
Se cambiamo l'estensione in questo modo, ciò non causerà alcun problema quando si utilizza il file nell'app se si aspetta qualcos'altro? – clu