幽沉谢世事,俯默窥唐虞。这篇文章主要讲述Android Photo Gallery不会从OnActivityResult中的数据返回正确的Uri相关的知识,希望能为你提供帮助。
我正在使用android studio。我试图处理画廊中的照片。
我打电话给startActivityForResult(photoPickerIntent, REQUEST_IMAGE_Load);
在受保护的void onActivityResult(int requestCode, int resultCode, Intent data)
从Uri
返回的data.getData()
不正确。喜欢
内容://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F128/ORIGINAL/NONE/1980269994那没有图像名称。
【Android Photo Gallery不会从OnActivityResult中的数据返回正确的Uri】怎么绕过它?谢谢。
答案如果您正在使用
requirdUri = Uri.fromFile(theSrcPath);
您的设备高于Nauget您应该使用来自相机和图库的获取URI的代码
您应该在Method下面为用户创建提供者。为此你必须在里面创建一个文件夹
res- > Xml- > 并添加一个名为File_path_public.xml的文件。注意:您可以选择任何文件名和文件内部放置代码
<
?xml version="1.0" encoding="UTF-8"?>
-<
paths xmlns:android="http://schemas.android.com/apk/res/android">
<
external-path path="." name="external_files"/>
<
/paths>
并在您的清单文件内部应用程序标记创建一个提供商像:
<
!-- this is For Access External file Storage -->
<
provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.appName.provider"
android:exported="false"
android:grantUriPermissions="true">
<
meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths_public" />
<
/provider>
然后在下面创建此功能:
public static Uri getUriFromFile(Context theCtx, File theSrcPath) {
Uri requirdUri = null;
// Above Compile SDKversion: 25 -- Uri.fromFile Not working
// So we have to use Provider
if (Build.VERSION.SDK_INT >
= Build.VERSION_CODES.N) {
requirdUri = FileProvider.getUriForFile(theCtx,
theCtx.getApplicationContext().getPackageName() + CommonUtils.PROVIDER_FILE_EXTENSION,
theSrcPath);
} else {
requirdUri = Uri.fromFile(theSrcPath);
}return requirdUri;
}
请注意,您应该在清单中拥有外部存储权限。
另一答案如果你想要图像名称,那么你应该创建一个文件,然后从中获取一个名称。例如:
File f = new File(uri.getPath());
String imageName = f.getName();
推荐阅读
- android.net.wifi.STATE_CHANGE意图处理(在Activity中)
- Cookie不适用于Apple设备上的WebSocket
- Android - 欧盟Cookie法
- Android - 保持会话活动直到关闭(直到用户注销)
- 带有IFrames Chrome 63的Android Cordova应用程序无请求标题Cookie
- 把iframe放在Android应用程序上
- Ionic(无法在Android上的iFrame中显示facebook嵌入式帖子)
- 如何在Spring Boot控制器类中传递参数(app正在使用Spring Security)
- Spring Boot AnnotationConfigEmbeddedWebApplicationContext无法填充动态类中的自动声明的声明字段