在用Vivo的一些手機中(如:Vivo X20,X20Plus A,V1818A等),選擇系統相冊中的圖片時,回傳取到的Uri 轉換成 file 檔案時會出現 Attempted to access a cursor after it has been closed 錯誤,不知道有沒有人碰到過?怎么解決的?
下面是選擇圖片:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(intent, 100);
@Override // 回傳值
protected void onActivityResult(int requestCode,final int resultCode,final Intent intent){
if(requestCode==100) {
if (resultCode == Activity.RESULT_OK){
//.....這里過濾了一些代碼,下面就簡單用下面這個執行
String tmp_path = getDataColumn(aaa.this,intent.getData(),null,null);
}
}
public String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
String path = null;
String[] projection = new String[]{MediaStore.Images.Media.DATA};
Cursor cursor = null;
try {
ContentResolver cr =context.getContentResolver();
cursor = cr.query(uri, projection, selection, selectionArgs, null); //運行到這句就會出現上面的錯誤
if (cursor != null && cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndexOrThrow(projection[0]);
path = cursor.getString(columnIndex);
}
} finally {
if (cursor != null) {
cursor.close();
}
}
return path;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/87115.html
標籤:Android
上一篇:Dart異步理解
下一篇:app匯入圖片不顯示
