如何在应用cache目录中建立文件以及修改文件的权限

uestc_gan 2012-03-31 09:52:34
问题来源:
目前开发的应用有个需求,就是在没有SD的时候,可以将下载的apk文件写入/data/data/<packageName>/cache/目录下,并改变文件的权限,让安装程序可以读取它并安装。

目前已经知道,通过getcacheDir()可以获取应用缓存目录的路径,那么便可以将apk文件写入到该目录下了。

但是在改变该文件权限时,问题来了:

android api openFileoutput(string filename,int mopde),因为filename不能有分隔符,所以接口只能改变

/data/data/<packageName>/file/目录下文件的权限。


请教大神,什么方法能够改变/data/data/<packageName>/cache/目录下文件的权限,让第三方程序(如安装程序)可以访问呢?

...全文
1037 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjian_tempus 2012-04-12
  • 打赏
  • 举报
回复
/**
* 修改apk权限
* @param permission
* @param path apk所在的cache下面的路径
*/
public static void chmod(String permission, String path) {
try {
String command = "chmod " + permission + " " + path;
Runtime runtime = Runtime.getRuntime();
runtime.exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}
你在打开apk前执行这个方法就行了。
例:
chmod("777",apkPath);// 修改apk权限,否则会出现包解析异常
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse("file://"+apkPath), "application/vnd.android.package-archive");
mContext.startActivity(intent);
baiyupiaopiao1 2012-04-09
  • 打赏
  • 举报
回复
如果设置同样的ShareUsrId可以解决问题吗?
ymh8416 2012-04-08
  • 打赏
  • 举报
回复
请问楼主解决了吗,我也遇到了这个问题啊

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧