2016-08-17 27 views
0

JOBB 도구에서 암호화 된 OBB 파일을 만들었으며 그 안에있는 파일에 액세스하려고합니다. 일부 이미지 "image1.jpg, image2.jpg"등이 있습니다. 지금까지 저는 성공적으로 마운트 할 수 :암호화 된 OBB 파일에서 파일 읽기

public void mountExpansion() { 
    final StorageManager storageManager = (StorageManager) this.getSystemService(Context.STORAGE_SERVICE); 


    String packageName = "com.nick.app"; 
    String filePath = Environment.getExternalStorageDirectory() 
      + "/Android/obb/" + packageName + "/" + "main." 
      + getString(R.string.apk_expansion_version) + "." + packageName + ".obb"; 
    final File mainFile = new File(filePath); 
    if (mainFile.exists()) { 
     Log.d("STORAGE", "FILE: " + filePath + " Exists"); 
    } else { 
     Log.d("STORAGE", "FILE: " + filePath + " DOESNT EXIST"); 
    } 

    String key = "123456"; 
    if (!storageManager.isObbMounted(mainFile.getAbsolutePath())) { 
     if (mainFile.exists()) { 
      if(storageManager.mountObb(mainFile.getAbsolutePath(), key, 
        new OnObbStateChangeListener() { 
         @Override 
         public void onObbStateChange(String path, int state) { 
          super.onObbStateChange(path, state); 
          Log.d("PATH = ",path); 
          Log.d("STATE = ", state+""); 
          expansionFilePath = storageManager.getMountedObbPath(path); 
          if (state == OnObbStateChangeListener.MOUNTED) { 
           expansionFilePath = storageManager 
             .getMountedObbPath(path); 
           Log.d("STORAGE","-->MOUNTED"); 
           Log.d("NICK","length()"+mainFile.length()); 
           Log.d("NICK","getAbsolutePath()"+mainFile.getAbsolutePath()); 
           Log.d("NICK","isDirectory()"+mainFile.isDirectory()); 

          } 
          else { 
           Log.d("##", "Path: " + path + "; state: " + state); 
          } 
         } 
        })) 
      { 
       Log.d("STORAGE_MNT","SUCCESSFULLY QUEUED"); 
      } 
      else 
      { 
       Log.d("STORAGE_MNT","FAILED"); 
      } 

     } else { 
      Log.d("STORAGE", "Patch file not found"); 
     } 
    } 



} 

그리고 내 로그에 나는 "1"OnObbStateChangeListener에서 반환 된 상태가 성공적으로 마운트 암호화 된 OBB 파일을 나타내는 참조하십시오. 그러나이 시점에서 나는 그 안에있는 파일에 어떻게 접근하여 그들을 사용하는지에 대한 손실이 있습니다. 예를 들어 ImageView 등에로드하십시오. 여기에 누락 된 내용에 대한 제안 사항이 있습니까?

답변

0
storageManager.mountObb(main.getPath(), null, new OnObbStateChangeListener() { 
    @Override 
    public void onObbStateChange(String path, int state) { 
     super.onObbStateChange(path, state); 
     if (state == MOUNTED) { 
      Toast.makeText(MainActivity.this, "obb mounted", Toast.LENGTH_LONG).show(); 

      File file = new File(storageManager.getMountedObbPath(path)); 
     } else 
      Toast.makeText(MainActivity.this, "mount fail :" + path, Toast.LENGTH_LONG).show(); 
    } 
}); 

파일 오브젝트는 obb의 모든 파일에 대한 디렉토리입니다. 여기에 액세스하려면 listFiles()으로 전화하십시오.