在Galaxy Tab / Android 4.1.2上不能挂载obb文件;在Android 4.4.4上运行良好



我尝试挂载一个(未加密的)obb文件(APK扩展文件)。

下面的代码在Android 4.4.4的Nexus 4上运行良好。obb文件被挂载,OnObbStateChangeListener也被输入,我可以在日志中看到日志行。

然而,在三星银河Tab 2(与Android 4.1.2)它不工作。"Start mount"正在被记录,但是OnObbStateChangeListener从未被输入,而且,没有错误或任何其他相关信息显示在日志中。

final StorageManager sm = (StorageManager) getApplicationContext().getSystemService(STORAGE_SERVICE);
Log.d(TAG, "Start mounting " );
sm.mountObb(
    new File(Environment.getExternalStorageDirectory(),"Android/obb/com.matheapp.www.matheapp2/main.2.com.matheapp.www.matheapp2.obb").getAbsolutePath(),    
    new OnObbStateChangeListener() {
        @Override
        public void onObbStateChange(String path, int state) {
            super.onObbStateChange(path, state);
            Log.d(TAG, "onObbStateChange: Path: " + path);
            Log.d(TAG, "onObbStateChange: State: " + state);            
        }
    }); 

我们一直在这方面工作,我们没有找到任何解决方案,所以我们使用重命名为。obb的zip文件,而不是使用jobb创建的正常obb。这一解决方案适用于我们目前测试过的所有设备,甚至包括搭载Android 4.1.2的Galaxy Tab。

我自己在一些设备上遇到过这个问题;这也可能是由于android的一个bug:

https://code.google.com/p/android/issues/detail?id=61881

似乎唯一要做的就是开始使用assetfiledescriptor和偏移量(用于音频/视频)或输入流。在我的情况下,我不能使用任何这些,因为我需要一个字符串/文件路径,所以我想我将被迫在某处解压缩扩展文件。

相关内容

  • 没有找到相关文章

最新更新