Benim gereksinimi içerik sağlayıcı üzerinden başka bir uygulamanın bir uygulamanın Varlık dosyasını açmak. Ben birkaç açamaz duyuyorumSorun ise
(Ben ContentProvider uygulamasıyla bu dosyayı açığa ediyorum) dosyalar ve okumak, ancak bazı dosyaları açarken istisna alıyorum. Lütfen Varlık Dosyasının açılması için uygulamayı bulun.
@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);
}
Bazı zamanlar, am.openFd(file_name);
diyerek istisna atıyor, o
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)
Ama, benim PC ve hatta bir başka şekilde Android cihazı açabileceğiniz aynı dosya
.Bana göre, herhangi bir senaryoda, bu istisnayı alacağız.
Şimdiden teşekkürler. * .mp3 dosyaları gibi işe yaramazsa, tüm öğeleri sıkıştırmaya çalışır.
Uzantıyı böyle değiştirirsek, bu durum uygulamayı başka bir şey bekliyorsa uygulamada kullanırken bu sorun olmaz mı? – clu