为什么我无法挂载简单的.obb文件?

时间:2018-12-07 15:53:26

标签: android

我正在尝试挂载Android/obb/中的obb文件,但出现此异常:

2018-12-07 10:47:48.795 18614-18640/? D/DefContainer: Couldn't get OBB info for /storage/emulated/0/Android/obb/bible audio.obb
2018-12-07 10:47:48.795 1178-1216/? W/StorageManagerService: com.android.server.StorageManagerService$ObbException: Missing OBB info for: /storage/emulated/0/Android/obb/bible audio.obb

这是我的代码:

   private void mountObb() {
    final StorageManager storageManager = (StorageManager) getSystemService(STORAGE_SERVICE);
    String obbPath = Environment.getExternalStorageDirectory() + "/Android/obb";
    final String obbFilePath = obbPath + "/bible audio.obb";
    OnObbStateChangeListener mount_listener = new OnObbStateChangeListener() {
        public void onObbStateChange(String path, int state) {
            if (state == OnObbStateChangeListener.MOUNTED) {
                if (storageManager.isObbMounted(obbFilePath)) {
                    Log.d("Main", "Mounted successful");
                    String newPath = storageManager.getMountedObbPath(obbFilePath);
                    File expPath = new File(newPath + "/file.zip/file.apk");
                    Log.d("Main", "File exist: " + expPath.exists());

                    Toast.makeText(getBaseContext(), "successfully mounted!", Toast.LENGTH_LONG).show();
                    startActivity(new Intent(Downloader.this, AudioList.class));
                }
            } else {
                Toast.makeText(getBaseContext(), "mount failed", Toast.LENGTH_LONG).show();
            }
        }
    };
    storageManager.mountObb(obbFilePath, "key", mount_listener);
}

}

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

问题是示例中文件的名称和位置: 对于OBB文件的命名方式以及放置位置,Android有非常严格的规定。

mountObb function只能访问名称和路径与您的应用程序包名称匹配的文件。

Here are the detailed rules on naming the file