android开发进行自动更新时如何下载软件到手机内存,显示实现下载到SD卡了

android开发进行自动更新时怎么下载软件到手机内存,显示实现下载到SD卡了
本帖最后由 li641808825 于 2015-10-22 17:02:08 编辑
android开发进行自动更新时怎么下载软件到手机内存,显示实现下载到SD卡了
// 判断SD卡是否存在,并且是否具有读写权限
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
// 获得存储卡的路径
String sdpath = Environment.getExternalStorageDirectory() + "/";
mSavePath = sdpath + "download";
URL url = new URL(mHashMap.get("url"));
// 创建连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
// 获取文件大小
int length = conn.getContentLength();
// 创建输入流
InputStream is = conn.getInputStream();

File file = new File(mSavePath);
// 判断文件目录是否存在
if (!file.exists()) {
file.mkdir();
}
File apkFile = new File(mSavePath, mHashMap.get("name"));
FileOutputStream fos = new FileOutputStream(apkFile);
int count = 0;
// 缓存
byte buf[] = new byte[1024];
// 写入到文件中
do {
int numread = is.read(buf);
count += numread;
// 计算进度条位置
progress = (int) (((float) count / length) * 100);
// 更新进度
mHandler.sendEmptyMessage(DOWNLOAD);
if (numread <= 0) {
// 下载完成
mHandler.sendEmptyMessage(DOWNLOAD_FINISH);
break;
}
// 写入文件
fos.write(buf, 0, numread);
} while (!cancelUpdate);// 点击取消就停止下载
fos.close();
is.close();[code=java]
[/code]

现在我想下载到手机内存中,怎么实现呢
------解决思路----------------------
一般可以放到缓存,得到缓存路径不就可以了…
------解决思路----------------------
不要这个不就行String sdpath = Environment.getExternalStorageDirectory() + "/"; 改成内存的
------解决思路----------------------

引用:
Quote: 引用:

一般可以放到缓存,得到缓存路径不就可以了…

改成内存的好像要相应的权限吧?


context.getCacheDir().getPath();  // 内部缓存
context.getExternalCacheDir().getPath();  // sd缓存