Android保存图片到系统图库
近期做Android开发需求,涉及到需要将游戏应用的二维码保存到本地相册,以便用户可以查看分享。参考了网上stormzhang 的这篇文章,得到如下可以使用的代码:
1 | public static void saveImageToGallery(Context context, Bitmap bmp) { |
在Android4.4之前也就是以发送一个Action为“Intent.ACTION_MEDIA_MOUNTED”的广播通知执行扫描。方法如下:
this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
但在Android4.4中,则会抛出以下异常:
W/ActivityManager( 498): Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=2269, uid=20016
那是因为Android4.4中限制了系统应用才有权限使用广播通知系统扫描SD卡。
参考 逐Ls梦 的专栏这篇文章可得到如下解决方案替代之:
MediaScannerConnection.scanFile(this, new String[]{Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/" + fileName}, null, null);
即:使用MediaScannerConnection执行具体文件或文件夹进行扫描。
个人微信公众号:晚晴幽草轩;名字取自:“天意怜幽草,人间重晚晴”。专注互联网开发(Web 大前端、快应用、小程序),以及分享优质网站、AI 应用、效率工具、心得感悟等内容。
文档信息
- 版权声明:知识共享署名-非商业性使用-禁止演绎(创意共享3.0许可证)
- 文章出处:晚晴幽草轩
- 发表日期:
- 社交媒体: