gpt4 book ai didi

android - 挂载 .obb 时未调用 OnObbStateChangeListener

转载 作者:行者123 更新时间:2023-11-30 03:10:23 25 4
gpt4 key购买 nike

通过将 .obb 文件扩展到另一个目录以读取各个部分,我们已经在我们的应用程序中成功使用 APK 扩展文件技术一段时间了。我们最终决定尝试通过使用 StorageManager 挂载 bob 来直接读取它。我们使用的代码在网上似乎很常见。

我们打电话:

        if ( storageManager.mountObb( obbFile.getAbsolutePath(), null, obbListener ) )
{
Log.d( "STORAGE_MNT", "SUCCESSFULLY QUEUED" );
}
else
{
Log.d( "STORAGE_MNT", "FAILED" );
}

这成功为“SUCCESSFULLY QUEUED”。但是 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)。我想知道这是否足够稳定以用于生产代码。

最佳答案

好吧,我想我终于明白发生了什么事。看起来有问题的 obb 文件已经挂载了。该文件是一个 APK 扩展文件,系统会自动为您安装它。

如果在尝试挂载它之前,我执行:

        if (storageManager.isObbMounted( obbFile.getAbsolutePath() ))
{
Log.d("", "obb file mounted at " + storageManager.getMountedObbPath( obbFile.getAbsolutePath() ));
}

无需先显式挂载它,我就会得到一个有效的挂载路径。我真的希望文档(或 LogCat 消息)对此更加明确。我花了大约一天的时间才发现这一点。直到我在 obb 上明确使用了一个(必要的)加密 key ,我才在 LogCat 中看到一条消息,说该文件已经安装。

关于android - 挂载 .obb 时未调用 OnObbStateChangeListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com