2012-09-28 13 views
5

Tüm resmi genişletme dosyaları kılavuzlarını izliyorum, ancak bulamıyorum. İhtiyacım olan obb dosyasına erişemiyorum.Obb genişletme dosyası içindeki dosyalara erişme

Bir zip dosyasında "depolanan" (sıkıştırılmamış) "depolanan ve" main.2001.test.expansion.proj.obb "olarak adlandırılan ve '/ mnt/sdcard/Android'de depolanan 6 ses dosyasına (80Mb) ihtiyacım var /obb/test.expansion.proj/'

Ben dosyalarında

String mainFileName = Helpers.getExpansionAPKFileName(this,true,2001); 
if(!Helpers.doesFileExist(this, mainFileName, 27959282L, false)) 
{ 
    //download 
} else { 
    Log.d("test_file","file exist"); 
} 

ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(this,2001,2001); 
if(expansionFile!=null) 
{ 
    ZipEntryRO[] ziro = expansionFile.getAllEntries(); 
    for (ZipEntryRO entry : ziro) { 
     Log.d("test_files_zip", "fileZip filename: "+entry.getZipFileName()); 
     try{ 
      AssetFileDescriptor ro = entry.getAssetFileDescriptor(); 
      Log.d("test_files_zip", "--fileZip getfiledescriptor.tostring: "+ro.getFileDescriptor().toString()); 
      Log.d("test_files_zip", "--fileZip createinputstring.tostring: "+ro.createInputStream().toString()); 

      AssetFileDescriptor assetFileDescriptor = expansionFile.getAssetFileDescriptor(entry.getZipFileName()+"/audio02.mp3"); 
      if(assetFileDescriptor!=null) { 
       Log.d("test_files_mp3", "length: "+assetFileDescriptor.getLength()); //checking it exists 
      } 
     }catch (IOException e){ Log.e("test_exp","IoExcp: "+e.getMessage()); } 
    } 
} 

erişim çalışacağım

-> assetFileDescriptor = expansionFile.getAssetFileDescriptor (.....); Ben her şeyi denedim ve farklı yerlerde buldum ama dosyayı alamadım. Dosya zip içinde isminden onun adını almak için herhangi bir yolu var mı?

Uygulama bu dosyaları bir özellik dosyasında yürütmeli ve dosyaları açıp "" herkese açık "" yapmak istemiyoruz. Düzenleme: Düzenleme. Kendime Cevap Ver

Önce okuduğumda anlamadığım bir satırdı ya da sadece özledim.

ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(this,2001,2001); 
if(expansionFile!=null){ 
     FileDescriptor fd = expansionFile.getAssetFileDescriptor("audio_01.mp3"); 
     //or 
     InputStream is = expansionFile.getInputStream("audio_01.mp3"); 
    } 
+0

bu asnwer size yardımcı olacaktır olabilir nasılsa http://stackoverflow.com/questions/11715855/steps-to-create-apk-expansion-file/11717019#11717019 –

+1

Hayır, O kaynaklarından biri i Kullanıldı, ama obb içinde bir dosya okuma hakkında hiçbir şey. – Jordi

+0

AssetFileDescriptor denedim: fd = expansionFile.getAssetFileDescriptor (zip [0] .mFileName); '. ama 'fd' boş. Bana yardımcı olabilir misiniz? –

cevap

1

Aarolama Bluenk öne sürdüğü gibi, burada (repited) cevap kodu Bulunan

, öyle ben öncelikle okumak veya i basitçe onu özledim zaman anlamadım bir çizgi oldu.

ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(this,2001,2001); 
if(expansionFile!=null){ 
     FileDescriptor fd = expansionFile.getAssetFileDescriptor("audio_01.mp3"); 
     //or 
     InputStream is = expansionFile.getInputStream("audio_01.mp3"); 
} 
+0

hata döndürür, "Create class APKExpansionSupport" gibi bir hata alıyorum. Herhangi bir kütüphane eklemem/indirmem gerekir mi? Lütfen bana yardım et. –

İlgili konular