public class HelpOpenFileUtils {/*** 读写权限*/protected static final int WRITE_PERMISSION = 20003;protected static final String[] WRITEPERMISSION = {Manifest.permission.WRITE_EXTERNAL_STORAGE};private static final String TAG = "TAG_HelpOpenFileUtils";public static void nativeDownloadFile(final Activity context, String url, final File downloadFile) {OkHttpClient httpClient = new OkHttpClient.Builder().build();Request request = new Request.Builder().url(url).get().build();Call call = httpClient.newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {Log.e("TAG_文件下载", "onFailure");ToastUtil.showToast("下载文件失败!!!");}@Overridepublic void onResponse(Call call, Response response) throws IOException {int code = response.code();if (code >= 500) {Log.e("TAG_文件下载", "code=" + code);ToastUtil.showToast("下载文件失败!!!");} else if (code >= 200 && code < 300) {InputStream is = response.body().byteStream();byte[] buf = new byte[8 * 1024];int len = 0;long sum = 0;OutputStream fos = null;try {Log.e("TAG_文件下载", "downloadFile=" + downloadFile);fos = new FileOutputStream(downloadFile);while ((len = is.read(buf)) != -1) {fos.write(buf, 0, len);sum += len;}fos.flush();// 通知图库更新LocalBroadcastManager.getInstance(MyApplication.getInstance()).sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse(downloadFile.getAbsolutePath())));ToastUtil.showToast("图片保存成功!");} catch (IOException e) {e.printStackTrace();Log.e("TAG_文件下载", "IOException=");ToastUtil.showToast("下载文件失败!!!");} finally {if (is != null) {is.close();}if (fos != null) {fos.close();}}}}});}//文件下载public static File createFile(FragmentActivity context, String url) {if (url.indexOf(".") != -1) {String type = url.substring(url.lastIndexOf(".") + 1);Log.e(TAG, "createFile===type=" + type);PermissionsChecker mChecker = new PermissionsChecker(context);if (mChecker.lacksPermissions(WRITEPERMISSION)) {// 请求权限PermissionsActivity.startActivityForResult((Activity) context, WRITE_PERMISSION, WRITEPERMISSION);} else {// 全部权限都已获取Log.e(TAG, "createFile===url=" + url);if (TextUtils.isEmpty(url)) {Log.e(TAG, "downloadFile: url下载地址为空!!!");return null;}try {int indexOf = url.indexOf("file_name=");if (indexOf != -1) {url = url.substring(0, indexOf + 10) + URLEncoder.encode(url.substring(indexOf + 10), "UTF-8");Log.e(TAG, "createFile===url=" + url);}} catch (UnsupportedEncodingException e) {e.printStackTrace();}File downloadFile = createDefaultTimeFile(type);if (null == downloadFile) {Log.e(TAG, "downloadFile: 文件创建失败!!!");return null;}return downloadFile;}}return null;}//文件下载public static void downloadFile(Activity context, String url) {if (url.indexOf(".") != -1) {int dian = url.lastIndexOf(".") + 1;String type = "";if (url.indexOf("/?") != -1) {int i = url.lastIndexOf("/?");type = url.substring(dian, i);} else if (url.indexOf("?") != -1) {int i = url.lastIndexOf("?");type = url.substring(dian, i);} else {type = url.substring(dian);}downloadFile(context, url, type);}}public static void downloadFile(Activity context, String url, String type) {Log.e(TAG, "type=" + type);PermissionsChecker mChecker = new PermissionsChecker(context);if (mChecker.lacksPermissions(WRITEPERMISSION)) {// 请求权限PermissionsActivity.startActivityForResult((Activity) context, WRITE_PERMISSION, WRITEPERMISSION);} else {// 全部权限都已获取Log.e(TAG, "url=" + url);if (TextUtils.isEmpty(url)) {Log.e(TAG, "downloadFile: url下载地址为空!!!");return;}try {int indexOf = url.indexOf("file_name=");if (indexOf != -1) {url = url.substring(0, indexOf + 10) + URLEncoder.encode(url.substring(indexOf + 10), "UTF-8");Log.e(TAG, "url=" + url);}} catch (UnsupportedEncodingException e) {e.printStackTrace();}File downloadFile = createDefaultTimeFile(type);if (null == downloadFile) {Log.e(TAG, "downloadFile: 文件创建失败!!!");return;}nativeDownloadFile(context, url, downloadFile);}}public static String dateFormat(long times, String dateformat) {if (times <= 0)return "";SimpleDateFormat dateformat1 = new SimpleDateFormat(dateformat);String dateStr = dateformat1.format(times);return dateStr;}private static File createDefaultTimeFile(String type) {String fileName = dateFormat(System.currentTimeMillis(), "yyyyMMddHHmmss");String mDownloadDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + File.separator + "download";File downloadFile = new File(mDownloadDir, fileName + "." + type);return createFile(downloadFile);}public static File createFile(File file) {Log.e(TAG, "file=" + file.toString());if (!file.getParentFile().exists()) {if (!file.getParentFile().mkdirs()) {Log.e(TAG, "createFile: 目录创建失败!!!");return null;}}try {file = new File(file.toString());file.createNewFile();} catch (IOException e) {e.printStackTrace();return null;}return file;}public static String dateFormat(long times, String dateformat) {if (times <= 0)return "";SimpleDateFormat dateformat1 = new SimpleDateFormat(dateformat);String dateStr = dateformat1.format(times);return dateStr;}}

这是下载文件工具类,使用时直接HelpOpenFileUtils.downloadFile(this,url);即可

附带一个实用工具类ToastUtil

public class ToastUtil {private static Toast toast;private static Handler mHandler = new Handler(Looper.getMainLooper());public static void showToast(String text) {showToast(text, Toast.LENGTH_SHORT);}public static void showToast(int text) {showToast(BaseApp.getAppContext().getString(text), Toast.LENGTH_SHORT);}private static void showToast(final String text, final int duration) {if (Looper.myLooper() == Looper.getMainLooper()) {show(text, duration);} else {mHandler.post(new Runnable() {@Overridepublic void run() {show(text, duration);}});}}private static void show(String text, int duration) {if (toast != null) {toast.cancel();}Log.e("TAG_Toast","text="+text);if (!TextUtils.isEmpty(text)){toast = Toast.makeText(BaseApp.getAppContext(),text, duration);toast.show();}}
}
												

android 下载图片并刷新相册相关推荐

  1. 26.Android 下载图片保存到相册

    26.Android 下载图片保存到相册 Android 下载图片保存到相册 前言 实现思路 自定义Dialog 自定义Handler 自定义AsyncTask AndroidManifest配置权限 ...

  2. 小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案

    小程序下载图片保存到相册功能,首次操作会提示:保存图片或视频到你的相册,有'拒绝'和'允许'两个选项,如果选择了拒绝就会保存失败:saveImageToPhotosAlbum:fail auth de ...

  3. Android下载图片到相册

    下载类,可以url下载,也可以本地的drawable下载到相册,记得在清单加权限,6.0代码动态加权限判断,下载图片要在子线程中下载,下载完后广播更新相册 代码下载地址:链接:https://pan. ...

  4. android 下载图片到相册

    识别图片格式 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = tru ...

  5. Android 下载网络图片保存到相册

    下载类,可以url下载到相册,记得在清单加权限,6.0代码动态加权限判断,下载图片要在子线程中下载,下载完后广播更新相册 在清单文件里面添加权限: <!--网络--><uses-pe ...

  6. uni-app下载图片到系统相册

    使用到的 API 有 : uni.downloadFile uni.saveImageToPhotosAlbum <template><view><view class= ...

  7. java下载图片到手机相册_Unity保存图片到Android手机且更新相册

    Android 保存图片到设备 前言:在许多的应用或游戏中,大多都有保存图片或者截图等等的功能,这篇文档我们的目的是通过 Unity 保存图片,并且调用 Andorid 中的更新相册的原生方法. 流程 ...

  8. Android 删除图片后刷新媒体库

    有时候在App内删除了图片,调用图片选择器会看到删除了的图片还存在(显示不出来),这是由于图片被删除了,但是媒体库的记录还存在,没有同步刷新造成的,手机重启后媒体库会被刷新. 我们可以在删除文件后调用 ...

  9. android下载图片 服务器,Android网络客户端从服务器电脑上下载图片

    前言,bitmap位图,后缀名.bmp/.dip,图片的一种编码格式,一张图片由多个像素组成,每个像素可以表达多种色彩.bitmap是inputStream.drawable.byte[].outpu ...

最新文章

  1. javaSE基础之记事本编程
  2. CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)
  3. GrepWin:Win7下的文本替换工具
  4. MKL学习——数学运算库安装调试
  5. UC浏览器电脑版怎么恢复被关闭的网页
  6. Python_多项式拟合
  7. c语言 程序结集,c语言(结体程序设计).doc
  8. python中%s是什么意思_python中的%s%是什么意思
  9. Linux中的的虚拟WEB主机的几点总结
  10. 【故障处理】CRS-1153错误处理
  11. spring创建定时任务
  12. html手机号带国家前缀,今天跟大家总结一下手机型号的前缀、后缀(...
  13. VM Player虚拟机的固定IP方法
  14. beanshell断言_jmeter BeanShell断言(一)
  15. MinGW-w64的安装及配置教程
  16. Excel 高阶学习视频收藏
  17. 浅谈AI设计:理解玩家们对游戏的感知方式
  18. 有哪些值得推荐的找电子书的网站?
  19. 设备联网工作建设方法和步骤
  20. ESP32-S3 LVGL http下载B站头像 JPG显示

热门文章

  1. PX4从放弃到精通(五):PX4中的姿态表示方法及转换关系
  2. 大数据在互联网领域的“九大”应用
  3. 动图怎么分解成图片?Gif图片如何在线分解
  4. 影视大全android,影视大全下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  5. 关于MFC的一些疑问
  6. 一个巨型的ESP8266模块,围观围观
  7. 阿里热更新(Sophix)
  8. 离散数学复习:命题逻辑
  9. 《MATLAB图像处理实例详解》:学习第六天(2022.10.09)
  10. 跨界融合引尴尬,智能珠宝能向前走远?