在Galaxy Tab / Android 4.1.2上挂载obb文件不起作用;使用Android 4.4.4正常工作

时间:2014-08-08 13:50:26

标签: android galaxy-tab apk-expansion-files

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

以下代码在使用Android 4.4.4的Nexus 4上正常运行。 obb文件被挂载并且也输入了OnObbStateChangeListener,我可以在日志中看到日志行。

然而,三星Galax Tab 2(使用Android 4.1.2)上的无效。正在记录“开始安装”,但是从不输入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);            
        }
    }); 

2 个答案:

答案 0 :(得分:1)

我们一直在努力,我们没有找到任何解决方案,因此我们使用的是重命名为.obb的zip文件,而不是使用jobb创建的普通obb。该解决方案适用于我们目前为止测试过的所有设备,即使在使用Android 4.1.2的Galaxy Tab中也是如此

希望这也适用于您的应用。

答案 1 :(得分:1)

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

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

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