我启动一个程序A去下载另个一个程序B,下载的这个程序B只能保存在程序A的安装目录下(“/data/data/A/files”),其他地方无权限保存,获取不到输入输出流。但是当我下载完成准备安装时,用Uri.parse("“/data/data/A/B.apk”")时会报解析出错,应该是安装程序无权限访问 ”/data/data/A/“的目录 String cmd = "chmod 777 " +filename;
try {
Runtime.getRuntime().exec(cmd);
} catch (Exception e) { e.printStackTrace();
} File file = new File(filename);
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setAction(Intent.ACTION_VIEW); String type = "application/vnd.android.package-archive";
intent.setDataAndType(Uri.fromFile(file), type);
AppManageActivity.this.startActivity(intent);
return intent;
}
try {
Runtime.getRuntime().exec(cmd);
} catch (Exception e) { e.printStackTrace();
} File file = new File(filename);
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setAction(Intent.ACTION_VIEW); String type = "application/vnd.android.package-archive";
intent.setDataAndType(Uri.fromFile(file), type);
AppManageActivity.this.startActivity(intent);
return intent;
}
A程序启动下载,可以将下载的内容保存到sd卡上,就是普通的写文件操作。所有程序都有权限来读写,安装程序就可以来安装它了。
就是因为没有sdk才存到内存中去呀 我看安智市场能实现 就是不知道怎么样实现的
只能randomAccessFile = new RandomAccessFile(filename,"rwd");这样写入 这样的话 下载是能下载到/data/data/xx下 但是 安装的时候就报解析包错误
try {
Runtime.getRuntime().exec(cmd);} catch (Exception e) {e.printStackTrace();
}