1

有什么方法可以在 ARC 上实现本地文件访问?据我了解 Chrome 是沙盒的,所以访问会很困难,但似乎定义的 android 数据目录可能有一个用于文件访问的特定文件夹?

4

2 回答 2

5

是的,ARC 上的应用程序是沙盒的,无法访问本地文件系统。

但是,您可以通过启动具有特定 Intent 的 Activity 来访问本地文件系统上的文件:ACTION_GET_CONTENT 用于读取文件,ACTION_SEND 用于保存文件。

例如,如果您想从本地文件系统打开图像文件,

private static int REQUEST_CODE = 5;

private void requestImageFile() {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    startActivityForResult(intent, REQUEST_CODE);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_CODE) {
        ImageView imgView = new ImageView(this);
        imgView.setImageURI(data.getData());
        setContentView(imgView);
    }
}
于 2015-04-03T04:45:05.850 回答
0

ARC 应用程序可能有权访问 OS 文件系统(通过浏览器文件选择器),但无法修改它们,即 ARC 将首先将这些项目复制到不同的位置,然后将副本而不是原始文件提供给应用程序。

进一步阅读:

https://sslab.gtisc.gatech.edu/2014/arc-security.html

于 2015-04-03T04:33:14.167 回答