我可以获取本地图片的SD卡路径,但无法使用google plus,dropbox等获取非本地图片同步的路径。
我的代码如下: -
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == imgSelectPhoto){
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(i, 0);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 0:
if(resultCode == RESULT_OK) {
try
{
DisplayImageOptions options;
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error).cacheInMemory()
.cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();
imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(getApplicationContext()));
imageLoader.displayImage(data.getData().toString(), imgImagePreview, options);
//imgImagePreview.setImageURI(data.getData());
fileUrl = getRealPathFromURI(data.getData());
Log.w("TEST","ImageURI : "+ data.getData()+" Path : "+ fileUrl);
}
catch(Exception e)
{
}
objAdapter.InsertLocalImage(fieldNotes, displayName, fileLargerName, fileUrl)
}
}
}
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
logcat的: -
01-17 17:50:58.242: W/TEST(11961): ImageURI : content://com.sec.android.gallery3d.provider/picasa/item/5955342059370063154 Path : https://lh4.googleusercontent.com/-vAwMltvVVdE/UqWgDNyyJTI/AAAAAAAABtc/IiAikNj0uwI/I/20131209_162222.jpg
如果有人有想法请回复。 提前谢谢......
答案 0 :(得分:0)
您无法访问任何路径。从来没有content://
Uri
- 您使用的代码将不可靠。
使用ContentResolver
和openInputStream()
(或openOutputStream()
)来使用content://
Uri
引用的数据。