我们已经在我们的应用程序中成功使用 APK 扩展文件技术一段时间了,将 .obb 文件扩展到另一个目录以读取各个部分。我们最终决定通过使用 StorageManager 安装它来尝试直接从 bob 中读取。我们使用的代码在网络上似乎很常见。
我们拨打电话:
if ( storageManager.mountObb( obbFile.getAbsolutePath(), null, obbListener ) )
{
Log.d( "STORAGE_MNT", "SUCCESSFULLY QUEUED" );
}
else
{
Log.d( "STORAGE_MNT", "FAILED" );
}
这成功为“成功排队”。但是之后永远不会调用 obbListener 。如果您查看 LogCat,您会看到以下内容:
Calling a method in the system process without a qualified user:
android.app.ContextImpl.bindService:1543
com.android.server.MountService$ObbActionHandler.connectToService:2458
com.android.server.MountService$ObbActionHandler.handleMessage:2337
android.os.Handler.dispatchMessage:102 android.os.Looper.loop:136
我认为这与问题有关,但我一直无法找到很多关于为什么没有“合格用户”的原因。有人可以解释一下这里会发生什么吗?
我们已经验证 obbFile.exists() 是真的。这个文件在那里。
在寻找答案时,我看到很多关于损坏 JOBB 工具的参考。Android 4.4 似乎也有一个错误阻止它工作(尽管我现在使用的是 4.4.2)。我想知道这是否足够稳定以用于生产代码。