如何挂载加密的APK扩展文件?

2024-05-22

我尝试以这种方式挂载扩展文件:

    final StorageManager storageManager = (StorageManager) getSystemService(STORAGE_SERVICE);
    String obbPath = Environment.getExternalStorageDirectory() + "/Android/obb";
    final String obbFilePath = obbPath + "/com.example/main.1.com.example.obb";
    storageManager.mountObb(obbFilePath, "SecretKey", new OnObbStateChangeListener() {
        @Override
        public void onObbStateChange(String path, int state) {
            super.onObbStateChange(path, state);
            if (state == OnObbStateChangeListener.MOUNTED) {
                onObbMounted();
            } else {
                Log.d("##", "Path: " + path + "; state: " + state);
            }
        }
    });

但在运行时我得到状态 21: ERROR_COULD_NOT_MOUNT:

Path: /storage/sdcard0/Android/obb/com.example/main.1.com.example.obb; state: 21

我添加了这个:

    File f = new File(obbFilePath);
    if (!f.exists()) {
        Log.e("OBB", "FILE NOT FOUND!!!");
    }

logcat 表示该文件存在。我不知道为什么我能得到这个状态21?


我也遇到了同样的问题,而且我发现了很多次Error 21是由于 Linux 文件权限对 obb 造成的,问题是 Android 无法访问它,所以StorageManager发射Error 21。创建 .obb 文件时,更改该文件的权限和用户组,如下所示:

$chmod 664 <obb-filename>.obb    
$chown user:group <obb-filename>.obb

然后再试一次,对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何挂载加密的APK扩展文件? 的相关文章

  • Android 滚动分页

    Android 操作系统有可以实现滚动分页的功能吗 Edit滚动分页是指像主屏幕上一样的分页 您可以左右滑动并转到下一页或上一页 您可以在 android git kernel org 上查看 Launcher 的源代码作为示例 查找名为
  • 如何知道哪个用户正在尝试登录?

    用户是使用电子邮件和密码创建的 这就是我进行注册的方式 mSignup setOnClickListener new View OnClickListener Override public void onClick View v mEma
  • Android HTTP-post AsyncHttpClient

    public void postLoginData AsyncHttpClient myClient new AsyncHttpClient RequestParams params1 new RequestParams params1 p
  • 如何计算android中位图擦除区域的百分比?

    我是安卓新手 我正在制作一个可以使用手指擦除画布上的位图的应用程序 像手指画橡皮擦之类的东西 我想计算擦除区域的百分比 例如 60 已从完整图像中擦除 请帮助我做到这一点 提前致谢 我尝试了一些方法 它总是给我 0 它不起作用 请参阅该方法
  • Gradle 构建无法解析生成的类

    我刚刚将 Android Studio 从 1 5 更新到 2 2 1 Gradle 也是如此 我有一个项目 它使用注释处理器框架 由我制作 来执行类似 Dagger 的依赖注入 这在更新之前工作得很好 但现在 Gradle 无法解析生成的
  • Android 媒体流错误? java.io.FileNotFoundException:没有内容提供者:http://

    我跟着this https github com Old Geek Radio blob master app src main java org oucho radio MainActivity java在 android 中播放流媒体广
  • 在 Android 模拟器中获取互联网连接

    我有一台带有wifi连接的台式电脑 我的IP地址是192 168 12 95 网关是192 168 10 10 但是我在android模拟器中没有获得互联网连接 也就是说我无法访问internate 我也尝试过 emulator avd w
  • 如何在java中从包含.0的浮点数中删除小数部分

    我只想删除包含的浮点数的小数部分 0 所有其他数字都是可以接受的 例如 I P 1 0 2 2 88 0 3 56666 4 1 45 00 99 560 O P 1 2 2 88 3 567 4 1 45 99 560 有什么方法可以做到
  • 如何创建用于测试的对象的 PagedList?

    我一直在使用 Google 的 arch 库 但是让测试变得困难的一件事是使用PagedList 对于此示例 我使用存储库模式并从 API 或网络返回详细信息 因此 在 ViewModel 中 我调用此接口方法 override fun g
  • Android studio 找不到 Theme.AppCompat.Light.DarkActionBar [重复]

    这个问题在这里已经有答案了 我已经导入了一个Android Studio项目来自Github into Android Studio 虽然我的build gradle有dependencies dependencies compile fi
  • 如何为键盘上的 xml 中的功能键设置不同的背景?

    我正在开发 Android 键盘应用程序 我尝试为普通键和功能键设置不同的背景 但它不起作用
  • 如何在Android 11中获取dir文件列表

    我想编写自己的精简版文件浏览器 文件 API 现在不适用于外部存储 该版本还提供了对范围存储的改进 这使得开发人员可以更轻松地迁移到使用此存储模型 我不明白如何使用范围存储来访问 sdcard 如果您正在寻找文件选择器体验 存储访问框架 h
  • 如何运行传递给模拟方法的 lambda 函数?

    我想知道是否可以运行作为参数传递给模拟函数的 lambda 函数 并在调用模拟方法时运行它 我正在使用 Mockk 我想象代码是这样的 class DataManager fun submit lambda Int gt Unit val
  • 屏幕方向更改后应用程序崩溃

    我有以下问题 启动后 应用程序工作正常 即使在更改屏幕方向后也是如此 应用程序尚未准备好处理方向更改 例如替代布局等 因此仅显示旋转的默认布局就可以了 但是 当我通过按后退键离开应用程序 更改方向并在再次启动应用程序后立即崩溃 崩溃后 如果
  • 自定义支持对话框片段文本颜色错误

    如果我放一个TextView在自定义对话框中 文本默认为黑色 不幸的是 支持片段对话框背景是深灰色的 灰底黑字很难读 我可以改变TextView白色或类似的东西android textColor android attr textColor
  • 找不到R类

    当我打开 Eclipse 时 R class在我的项目中消失了 为什么 我有 eclipse juno 和最新版本的 android SDK The R class不会重新生成 因为代码中有错误 我怎么解决这个问题 Try Project
  • Android Lollipop:将应用程序小部件添加到主屏幕时启动器崩溃

    添加小部件时 启动器在 Android Lollipop 上崩溃 并显示以下消息 在以前的 Android 版本上运行良好 编辑 这只发生在横向方向 12 16 12 35 10 208 E AndroidRuntime 960 java
  • 如何找出每个包含的库的最低 api 级别

    我的项目中包含了很多库 Android Studio 2 0 Preview 4 我想找出它们每个的最低 Android SDK 级别 是否可以不用谷歌搜索每个图书馆的信息 如果您有源形式的库 例如 作为项目中的库模块 请查看其清单 如果您
  • Android - 从渲染线程内结束活动

    下午好 我不熟悉 android 中的活动生命周期 并且一直在尽可能地阅读 但我不知道如何以良好的方式解决以下问题 我有一个使用 GLSurfaceView 的活动来在屏幕上绘制各种内容 在这个 GLSurfaceView 的渲染线程中 我
  • 如何在ListView中标记视图?

    我有一个带有列表视图的应用程序 列表视图工作正常 当我希望列表以标记的某些行开始时 问题就开始了 如果我按下它 我可以标记一行 但是 似乎没有找到一种方法来在初始化时标记任何行 这是我的代码 listViewOfBluetooth getL

随机推荐

  • 是否可以在 C/C++ 中模仿 Go 接口?

    在 Go 中 如果类型具有接口定义的所有方法 则可以将其分配给该接口变量 而无需显式继承它 是否可以在 C C 中模仿此功能 是的 您可以使用纯抽象类 并使用模板类来包装 实现 抽象类的类型 以便它们扩展抽象类 这是一个简单的示例 incl
  • 更新匿名方法内的 ref 参数

    是否有解决方法可以更新匿名方法内的 ref 参数 我知道匿名方法不允许访问外部作用域的 ref 参数 但是还有其他方法可以做到这一点吗 我正在使用 MessageStream 的外部库 因此无法更改委托的参数 void DoWork ref
  • 如何从 Python 中的请求处理程序内部关闭 HTTPServer?

    当我收到 StopIteration 异常时 如何关闭该服务器 sys exit 不起作用 usr bin env python from BaseHTTPServer import BaseHTTPRequestHandler HTTPS
  • Swift 在调试和发布模式下的行为不同

    不确定这是否是 Swift XCode 或 Alamofire 的问题 但我认识到我的混合 Swift Objc 应用程序中不同地方的奇怪行为 它只发生在用 Swift 编写并使用闭包 网络的部分 这是发生这种情况的示例代码 Alamofi
  • StreamWriter 错误字符

    遇到一个问题 streamwriter 在我正在生成的 csv 中生成错误的字符 那些角色 仅出现在文件的开头 5 GEN 555555555 Evan Smith email protected cdn cgi l email prote
  • Pywinauto 如何获取返回元素的列表

    我正在使用具有自定义堆栈面板的 WPF 应用程序 它基本上是一个列表 列表中的项目完全相同 因此我无法选择特定文本来唯一标识元素 其他一些值 例如时间 是动态的 有没有办法让我获得返回的元素列表 我知道这是可能的 因为抛出了错误 Eleme
  • 如何在Python中存储while循环和sentinel的结果?

    我已经为此工作了几个小时 以为我已经把它记下来了 但事实证明我全错了 任务是 编写一个程序来计算该课程的学期平均成绩和字母成绩 用户将输入这些数字 A list测验分数 每个分数的范围为 0 10 用户输入哨兵值 1来结束输入 降低测验的最
  • 通过令牌进行 Firebase CLI 身份验证

    我是按照官方描述的步骤进行的使用 Firebase CLI 的 GitHub 教程 https github com firebase firebase tools blob master README md 命令行 带有 CI 系统 没有
  • Jquery:是否有某种方法可以使 val() 返回空字符串而不是空列表的“未定义”?

    使用 Jquery 是否有某种方法可以使 val 在针对空元素列表调用时返回空字符串而不是 未定义 例如 我有这样的代码 var x my textbox id not watermark val 我的想法是 我想获取文本框的值 但如果它当
  • 将所有 0 值替换为 NA

    我有一个包含一些数字列的数据框 某些行具有 0 值 在统计分析中应将其视为空 在R中将所有0值替换为NULL的最快方法是什么 将所有零替换为 NA df df 0 lt NA 解释 1 它不是NULL你应该用什么来替换零 正如它所说 NUL
  • 打开 SFML 窗口出现内存读取错误

    我试图打开 SFML 窗口 但每次启动时都会显示 访问冲突读取位置 0xCCCCCCC0 错误发生在 init 方法中 相关代码 class AirportGame private sf RenderWindow window public
  • 如何将 r 数据框转换为 h2o 对象

    我对 R 和 H2O 很陌生 我试图找到一种将 r 数据帧转换为 h2o 对象的方法 我花了一些时间研究如何做到这一点 但没有运气 其他方式也是可能的 并且有详细记录如下 prosPath system file extdata prost
  • SQL 分隔符上的逗号分隔列

    这是一个 split 函数 它可以应用为dbo Split sf we fs we 当我将字符串更改为列名时 它不起作用 例如dbo Split table columnName Select from dbo Split email pr
  • Jasmin + karma:“错误:模块‘DynamicTestModule’导入了意外的值‘HttpClient’。请添加 @NgModule 注释。”

    我使用 jasmine 作为测试框架 使用 karma 作为测试运行程序 我正在尝试创建一个 HttpClient 对象 以便我可以创建一个服务作为该对象的依赖项 TestBed configureTestingModule declara
  • 是否可以用任何其他网络字体覆盖“Roboto”字体?

    根据底座样式https mirror api playground appspot com assets css base style css https mirror api playground appspot com assets c
  • Prolog家谱

    我做到了 但没有显示答案 当我询问兄弟姐妹 叔叔 阿姨时 这是我写的 有什么问题吗 uncle X Y male X sibling X Z parent Z Y uncle X Y male X spouse X W sibling W
  • Primefaces 动态覆盖面板仅显示一次

    我有一个带有打开 Primefaces 按钮的表单overlayPanel 面板中还有另一个按钮 用于执行 Ajax 操作 然后关闭覆盖层 这是一个完全没有 Ajax 操作的简化版本
  • 如何在 C# 中应用 XSLT 样式表

    我想使用 C 将 XSLT 样式表应用到 XML 文档 并将输出写入文件 我在这里找到了一个可能的答案 http web archive org web 20130329123237 http www csharpfriends com A
  • MVC5 对象引用未设置为 Scripts.Render 上的对象实例

    我正在使用 Asp net MVC5 自从使用 Microsoft MVC 平台 4 年以来 还没有遇到过这样的模棱两可的错误 错误发生在Manage默认 MVC5 模板中的页面 这里在第 26 行 at the layout cshtml
  • 如何挂载加密的APK扩展文件?

    我尝试以这种方式挂载扩展文件 final StorageManager storageManager StorageManager getSystemService STORAGE SERVICE String obbPath Enviro