当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]在android开发,对于文件的访问权限中说明我感觉不是很清楚,用了一个小例子来说明android创建文件,用另外一个应用去访问创建的文件。在android文件创建的模式中使用MODE_

在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,我理解的是:物理机器的环境或是同一模拟器。所以,正常访问到另一应用创建的文件。

两个项目的目录结构:

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

罗德与施瓦茨与SmartViser携手开发了一种用于测试符合欧盟销售的智能手机和平板电脑的新Energy Efficiency Index(EEI)标签法规的解决方案。该解决方案的核心是R&S CMX500,这是...

关键字: 智能手机 Android iOS

SanerNow Risk Prioritization依托CISA的SSVC框架,以SecPod著名的漏洞情报为基础而创建,可有效地对漏洞、错误配置和其他安全风险进行优先级排序,并改善网络安全态势。 加利福尼亚州雷德...

关键字: 安全漏洞 SE RIO BSP

(全球TMT2023年9月12日讯)Microland Limited与Serco AsPac宣布建立战略合作伙伴关系,以推动数字化转型,利用云提高业务敏捷性和韧性。Serco AsPac是全球最大的公共服务提供商之一...

关键字: LAN MICRO SE RC

此次合作将专注于提供卓越的数字公共服务、促进业务增长、打造增强的数字体验并加速云采用。 印度班加罗尔2023年9月12日 /美通社/ -- 今日,Microland Lim...

关键字: LAN MICRO 数字化 SE

(全球TMT2023年9月7日讯)思享无限控股有限公司宣布,将以300万美元投资DVCC TECHNOLOGY L.L.C(DVCC),以获取其30%股权。这一重要举措标志着思享无限从移动娱乐向元宇宙生活方式的转变,也...

关键字: DVCC SE RS AI

北京2023年9月6日 /美通社/ -- 思享无限控股有限公司(以下简称:思享无限,纳斯达克股票代码:SJ)对外宣布,将以300万美元投资DVCC TECHNOLOGY L.L.C(以下简称DVCC),以获取其30%股权...

关键字: DVCC TECHNOLOGY SE RS

(全球TMT2023年9月4日讯)当地时间9月1日,荣耀终端有限公司CEO赵明在2023德国柏林消费电子展(Internationale Funkausstellung Berlin,IFA)开幕日发表题为《展开未来(...

关键字: 荣耀 折叠屏手机 SE RS

柏林2023年9月4日 /美通社/ -- 当地时间9月1日,荣耀终端有限公司CEO赵明在2023德国柏林消费电子展(Internationale Funkausstellung Berlin,以下简称IFA)开幕日发表题...

关键字: 荣耀 折叠屏 SE RS

国际酒店运营商升级其在线支付功能 上海2023年8月28日 /美通社/ -- 加拿大金融科技公司Nuvei Corporation(以下简称“Nuvei”或“公司”)(纳斯达克代码:NVEI)(多伦多证券交易所代码:N...

关键字: 代码 IP SE 纳斯达克

(全球TMT2023年8月24日讯)2023年8月23日,时值实时3D引擎Unity在华设立合资公司Unity中国一周年之际,Unity中国正式推出Unity中国版引擎——团结引擎。Unity全球CEO John Ri...

关键字: UNITY CE Android 开发者
关闭
关闭