2012-03-06 22 views
0

我有使用意向的画廊和数据来自画廊采用图像的代码发送到我的活动作为像URI:机器人接近管理光标

内容://媒体/外部/图像/媒体/ 338

我需要得到这个图片的路径,我使用

public String getRealPathFromURI(Uri contentUri) { 
    String[] projection = {MediaStore.Images.Media.DATA}; 
    Cursor cursor = managedQuery(contentUri, projection, null, null, null); 
    try { 
     cursor.moveToFirst(); 
     return cursor.getString(0); 
    } finally { 
     cursor.close(); 
    } 
} 

但是这个代码将导致在Android ICS崩溃试图关闭管理游标时。这是一个已知问题(see issue)。有没有办法关闭这个游标而不会导致崩溃?我不想在不关闭游标的情况下退出此方法。我需要支持Android 2.1和以上。由于

+0

你不应该关闭managedQuery – njzk2 2012-03-06 13:59:31

+0

现在我知道,但它吮吸它的工作在Android 2.1,2.2,2.3,它是在Android 4.0 – 2012-03-06 14:35:31

+0

崩溃不然后使用managedQuery – njzk2 2012-03-06 14:37:07

回答

0

发现:

public String getRealPathFromURI(Uri contentUri) { 
    String[] projection = {MediaStore.Images.Media.DATA}; 
    Cursor cursor = getContentResolver().query(contentUri, projection, null, null, null); 
    try { 
     cursor.moveToFirst(); 
     return cursor.getString(0); 
    } finally { 
     cursor.close(); 
    } 
}