【问题标题】:Android make my app files only play from inside the appAndroid 让我的应用文件只能在应用内部播放
【发布时间】:2014-12-26 03:40:15
【问题描述】:

我创建了一个应用程序,客户端可以在其中记录少量对话并存储在外部存储中。如果需要,客户端必须能够传输文件。所以我将录制的文件存储在外部存储中。但客户不希望从应用程序外部(从 sd 卡)或音乐播放器播放文件。可能吗?请告诉我。使用内部存储是唯一的方法吗?

【问题讨论】:

    标签: android-mediaplayer android-file android android-audiorecord


    【解决方案1】:

    这不是一个编程问题,但是...

    这里有2个选项,根据你的要求决定

    1) 如果您希望记录不出现在任何播放器中 或多媒体应用程序,您有 2 个选项: A- 让存储文件夹名称以 . 开头。 (例如,.myrecords) 要么 B- 在名为 .nomedia 的文件夹中添加一个文件

    但这不会保护记录,就好像有人安装了 sd 卡记录可以在任何设备/PC 上复制和播放

    2)如果您想保护文件,您需要按照 Joey Chong 的建议对其进行加密 因此,一旦录制完成,文件就会被加密并存储在外部存储中 一旦用户进入播放屏幕并选择要播放的文件,应用程序将首先解密它,在一个新的(临时文件)中然后播放它,并在用户离开播放屏幕后删除临时文件。

    -- 用于将记录导出到 PC 或其他设备, 您可以添加一个功能(可能是按钮)来导出所选记录,只需将所选文件解密到特定文件夹中,例如(/appfolder/exported/)然后用户可以复制它们或做任何事情...... 一旦导出目的结束,用户必须删除导出文件夹中的文件。 (也可能是一个按钮)清除导出

    存储在内部不是一个好主意,尤其是音频/视频,因为它可能是大文件,并且某些设备没有非常大的内部存储。

    这可能更像是一条评论,但它太长了

    【讨论】:

    • 嗨@Yazan 感谢您的回复。甚至我的感觉也差不多。看起来这是唯一的解决方案。现在我需要对音频文件进行加密和解密,并在这里发布它的优缺点...... ;)
    • 如果你在哪里,我将开始处理记录的加密/解密,一旦你遇到问题(希望你没有),然后你搜索一下错误,如果你发现没有溶胶。我对此表示怀疑,然后提出一个新问题,包括相关的代码和日志..等,这样你就能得到更好的结果,祝你好运。
    • 谢谢雅赞,我做了你解释的同样的事情,现在我觉得我的数据是安全的,我暂时遵循了一个简单的教程,你能给我一个关于加密和解密的链接,以便我可以更清楚地了解可用算法及其安全级别等......
    • 我现在没有链接或参考,但是一些搜索会帮助你,搜索加密文件 android java,结果之一显示stackoverflow.com/questions/4275311/…
    【解决方案2】:

    您提到的内部存储是指您的应用程序内的私人位置吗?据我所知,即使您放入内部存储,媒体播放器仍然能够找到该文件,除非它位于您的应用程序私有位置内。

    您可以做的是加密文件并存储在外部存储中。当您需要播放时,将文件解密到您的应用私有位置并播放。

    【讨论】:

    • 嗨@Joey Chong。如果我这样做,用户安装设备时是否可以在他/她的电脑上播放它?还有一个问题,他能从文件资源管理器中打开文件吗?
    • 不,他们不会,除非你的电脑上有一个可以理解加密的自定义播放器。
    • 不客气。只需添加到@Yazan 答案,您还可以通过嵌入式媒体播放器制作一个小型应用程序,如果您愿意,可以在桌面上执行解密和播放。但是,请记住,与标准 java 相比,android 具有额外的提供程序和算法。还要注意 SecureRandom ,它在不同平台上的值是不同的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多