赞
踩
遇到一些问题,使用代码的结果是无法满足自己的需求,很多时候是和手机本身的的一些权限和机制有关系。
这个原因就是由于权限的原因,首先内部存储,在权限的原因下,默认为私有,内部存储所以只能本应用自己调用。而安装应用是PackagesInstaller和PackageManager系统的其他部分调用,就等于是外部应用调用的,所以是无法成功的,由于我的需求就是把apk存放到内部存储的固定目录下。
首先,可以设置权限的调用内部存储的方法有两个(参考连接:http://aijiawang-126-com.iteye.com/blog/792931 )
一个openFIleInput(String name,int mode),第一个参数是文件名字,不能带有“/”,意思就是不能是路径,必须是文件名,第二个参数是模式。
还有就是getDir()方法getDir(String name, int mode),返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。
这个放在file下面好像是可以的。
然后就是使用android.app.ContextImpl.setFilePermissionsFromMode(String name,int mode,int extraPermissions);
还有就是android.os.FileUtils.setPermissions(String path, int mode, int uid, int gid);
这个两个类是系统内部类,在eclipse中编写,是无法正常调用的,因为你找不到包,最方便的方法就是利用反射。
大概发一个例子来简单总计下反射的使用,以及参数的含义。
- public void setFilePathPermissions(String name, int mode,
- int extraPermissions) {
- Class<?> cla
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。