【问题标题】:How to protect sound tracks on android DCIM folder如何保护android DCIM文件夹上的音轨
【发布时间】:2018-05-31 23:14:26
【问题描述】:

我有一个应用程序可以在首次使用时下载音轨。在 Android 上,这些曲目存储在 DCIM 文件夹中。 我使用 .FILENAME 隐藏文件夹和文件,但有没有办法通过使用哈希或密码来阻止从应用程序外部访问这些文件?

这是我用来下载曲目的代码 -

function getTracks() {
console.log('Good to go');
var fileTransfer = new FileTransfer();
var uri = 
encodeURI("https://testalice.000webhostapp.com/ATG/tracks/Recording.m4a");
var fileURL = "///storage/emulated/0/DCIM/.ATG/Recording.m4a";

fileTransfer.download(
uri,
fileURL,
function(entry) {
    console.log("download complete: " + entry.toURL());
},
function(error) {
    console.log("download error source " + error.source);
    console.log("download error target " + error.target);
    console.log("download error code" + error.code);
},
false,
{
    headers: {
        "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
    }
}
);
}

tyczj - 你会将它存储在哪里,以便只能通过应用程序访问它?我正在使用 phonegap 构建,所以我的应用程序大小有限。必须在激活应用程序时下载曲目。

【问题讨论】:

  • 为什么要在应用程序之外的任何人都可以访问它们的地方下载它们?您应该将它们保存到只有您的应用可以访问的应用数据文件夹中(除非手机已植根)

标签: android hide media


【解决方案1】:

只要您对内部文件使用 MODE_PRIVATE 存储,其他应用永远无法访问它们。

如果您不希望所有人(公共)都可以访问您的文件,则应将它们下载到私有应用存储中。为此,请使用带有私有模式指示器的 outputStream:

FileOutputStream outputStream;
try {
    ...
    outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
    ...
}
  • 如果您在实施此建议时仍有问题,请发布您的完整代码。

【讨论】:

  • 你能发布包含这部分的完整代码吗?
【解决方案2】:

有很多方法可以解决这个问题。例如,您可以加密曲目文件(或每个文件中只有 n 字节)。

【讨论】:

  • 您能否详细说明或指导我在哪里可以找到解决方案?
  • 最好给我们路径/sdcard/Android/data/your.apk.folder。您可以下载 m4a 文件,然后对其进行加密。例如,您可以使用 AES link。当您的程序需要文件时,只需将其解密即可。
猜你喜欢
  • 1970-01-01
  • 2011-07-04
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 2014-12-16
  • 1970-01-01
相关资源
最近更新 更多