2016-01-03 96 views
0

我不知道爲什麼我不能獲取文件路徑。當我選擇文件時,消息將顯示「正在上傳文件路徑:null」我該如何解決它?[Android]無法獲取文件路徑

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1 && resultCode == RESULT_OK) { 
     Uri selectedImageUri = data.getData(); 
     filepath = getPath(selectedImageUri); 
     Bitmap bitmap = BitmapFactory.decodeFile(filepath); 
     imageview.setImageBitmap(bitmap); 

     messageText.setText("Uploading file path:" + filepath); 

    } 
} 

@SuppressWarnings("deprecation") 
public String getPath(Uri uri) { 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(uri, projection, null, null, null); 
    int column_index = cursor 
      .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 

回答

0

<pre> 
 
<code> 
 
      
 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) 
 
{ 
 
    if (requestCode == PICK_REQUEST_CODE) 
 
    { 
 
    if (resultCode == RESULT_OK) 
 
    { 
 
     Uri uri = intent.getData(); 
 
     String type = intent.getType(); 
 
     LogHelper.i(TAG,"Pick completed: "+ uri + " "+type); 
 
     if (uri != null) 
 
     { 
 
     String path = uri.toString(); 
 
     if (path.toLowerCase().startsWith("file://")) 
 
     { 
 
      // Selected file/directory path is below 
 
      path = (new File(URI.create(path))).getAbsolutePath(); 
 
     } 
 

 
     } 
 
    } 
 
    else LogHelper.i(TAG,"Back from pick with cancel status"); 
 
    } 
 
} 
 

0

managedQuery有許多問題,其現在已廢棄。替換方法是

getContentResolver().query() 

你可以找到更多關於這個Here