我试图返回存储在android手机中的真实照片路径。它对我的4.4有效。2手机,但使用5.0时。2电话,返回的路径为空
这是我的代码,从意图中获取真实的照片路径。以Uri形式获取数据(content://com.android.providers.media.documents/document/image:3061),
String[] proj = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(GlobalApplication.getContext(), photoUri, proj, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String result = cursor.getString(column_index);
cursor.close();
return result;
这是我启动库应用程序的代码:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),MobileConstant.newInstance().REQUEST_CODE_GALLERY);
从图库中拾取图像的意图
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(intent, reqCode);
In-onActivityResult方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
try {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == reqCode) {
if (data != null) {
String realPath=getRealPathFromURI(data.getData());
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private String getRealPathFromURI(Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = getActivity().getContentResolver().query(contentUri, proj,
null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
//To get picture from gallery or camrea
if (Build.VERSION.SDK_INT < 19) {
Intent intent = new Intent();
intent.setType("image/jpeg");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), 200);
} else {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/jpeg");
startActivityForResult(intent, 300);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//To get result
if (requestCode == 200) {
Uri selectedImage = data.getData();
Log.d("Uri", selectedImage.toString());
startCropImage(selectedImage);
}
else if (requestCode == 300) {
Uri originalUri = data.getData();
final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
//noinspection ResourceType
getContentResolver().takePersistableUriPermission(originalUri, takeFlags);
Log.d("Uri", originalUri.toString());
startCropImage(originalUri);
}
}
我使用以下方法使其工作:
Cursor cursor = GlobalApplication.getContext().getContentResolver().query(photoUri, null, null, null, null);
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":")+ 1);
cursor.close();
cursor = GlobalApplication.getContext().getContentResolver().query(
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
cursor.close();
return path;
我已经从谷歌阅读了这个标准描述:https://developer.android.com/training/sharing/receive 在此之后,我更新了我的AndroidManifest.xml,以包括一个意图过滤器来接受来自其他应用程序的共享(对于各种哑剧类型)。 我可以将我的应用程序视为其他应用程序中的共享选项,当我在其他应用程序中选择一个文件(例如,照片应用程序中的图像文件)并选择与
我已经在谷歌云功能中构建了API。当我试图直接获取API时,会出现CORS错误。虽然我添加了,但失败了。 来自“http://localhost:3000”的“https://xxxxxxxx.com”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“n
问题内容: 如何在ng-grid中创建(或访问)选定行的数组? 文档(滚动到“网格选项”) index.html main.js Plnkr代码(并运行它) 问题答案: 根据文档,应该是的属性,因此请尝试以下操作: 控制者 的HTML
我想从Primefaces中的p:selectOneMenu组件(下拉列表)中选择一个值。我从Java Bean获取数据。我有以下代码: XHTML: Java Bean DevTestController。java: InfoRowBean。java: 转换器InfoRowBeanConverter.java: 如果我按下按钮,什么都不会发生(也没有错误)。如果我从标记中删除参数“value”(
我有一个超文本标记语言选择框,在我的jsp中启用了多选择。我从其他按钮动态填充选项。因此,用户不会从该选择框中选择任何值。我必须将selectbox的所有值传递给其他jsp。 我正在使用表单操作提交浏览jsp。这样做时,我无法获得所有的选择框值。 此选项仅提供该多选框中的选定值。我想要的是从selectbox中获取所有值,无论是否选中。 谢谢