java - 将位图转换为 uri
问题描述
我正在尝试将位图转换为 uri,但我遇到了 SecurityException 问题,有什么解决办法吗?
public Uri getImageUri(Context ctx, Bitmap bitmap) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage
(ctx.getContentResolver(),
bitmap, "Temp", null);
return Uri.parse(path);
}
我得到的例外是:
E/MediaStore: Failed to insert image
java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=10963, uid=10274 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1693)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
解决方案
转到项目中的 AndroidManifest 文件并添加此行
<manifest>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <<=THIS
.
.
<application></application>
.
.
</manifest>
推荐阅读
- python - 姜戈。理智和可理解的一对一关系
- maven - 将 Maven 项目 Liferay 6.2 迁移到 7.2
- google-app-engine - 如何根据 App Engine 支出限制在 Stackdriver 中发出警报?
- php - 在php中的同一屏幕上创建图像和对话框
- html - 如何在 CSS 网格设置中考虑动态行?
- python - 使用 % 给出错误来查找偶数或奇数的 Python 程序
- python - 从 json 文件中读取嵌套数据
- pytorch - 从 torchvision.datasets.vision 导入 VisionDataset ImportError:没有名为 vision 的模块
- sql - 具有Level Pseudocolumn的Dual table的内部过程
- c++ - NEON 中 _mm_hadd_ps 的等价物是什么?