下载apk到本地,安装遇到的解析包时出现错误的分析

遇到一些问题,使用代码的结果是无法满足自己的需求,很多时候是和手机本身的的一些权限和机制有关系。


问题1:下载apk到 内部存储,安装时无法找到路径,提示:解析包时发生错误

这个原因就是由于权限的原因,首先内部存储,在权限的原因下,默认为私有,内部存储所以只能本应用自己调用。而安装应用是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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值