您的位置 首页 传感器

Android文件拜访权限问题

在android开发,对于文件的访问权限中说明我感觉不是很清楚,用了一个小例子来说明android创建文件,用另外一个应用去访问创建的文件。在android文件

在android开发,关于文件的拜访权限中阐明我感觉不是很清楚,用了一个小比如来阐明android创立文件,用别的一个运用去拜访创立的文件。

在android文件创立的形式中运用MODE_PRIVATE创立文件,API中的解说如下:

File creation mode: the default mode, wherethe created file can only be accessed by the calling application (or allapplications sharing the same user ID)。

关于我的了解,关于一个运用以MODE_PRIVATE形式创立的文件只能被调用的运用(或是同享相同的用户ID的运用)拜访。

context.MODE_PRIVATE:是默许的操作形式,它代表这个文件是私有的,只能被运用自身拜访。(网上这样解说的)

save办法是经过filename,content来保存文件。

public void save(String filename, String content) throws Exception{

out = context.openFileOutput(filename, Context.MODE_PRIVATE);

out.write(content.getBytes());

out.close();

}

依照context.MODE_PRIVATE的解说该filename的文件只能由该运用自身拜访。我测验别的写了一个运用来对其该运用创立的文件进行拜访,创立的文件为123.txt,其特点如下:

//testAccessOtherAppFile()办法对123.txt进行拜访;坐落另一项目中

public class FileotherActivityTest extends AndroidTestCase {

private static final String TAG = FileotherActivityTest;

public void testAccessOtherAppFile() throws Exception{

String path =/data/data/com.android/files/123.txt;

File file = new File(path);

FileInputStream in =new FileInputStream(file);

byte[] buffer = new byte[1024];

int len = 0;

ByteArrayOutputStream out = new ByteArrayOutputStream();

while(-1 != (len = in.read(buffer))){

out.write(buffer, 0, len);

}

//得到文件的二进制数据

byte[] data = out.toByteArray();

out.close();

in.close();

Log.i(TAG, new String(data));

}

}

testAccessOtherAppFile办法运用不能拜访到123.txt,但是在运转这个androidjunit testcase的时分logcat正常输出了文件内容:

简略的剖析了下原因,在这两个运用中是不是阐明API中的all applications sharing the same user ID,private形式创立的文件能够由创立该文件的运用拜访以及与运用user ID的一切运用所拜访,这儿的user ID,我了解的是:物理机器的环境或是同一模拟器。所以,正常拜访到另一运用创立的文件。

两个项目的目录结构:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/299464.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部