我有同樣的問題,終於找到了一個很好的解決辦法在這裏:
Xamarin Choose Image From Gallery Path is Null
我唯一棘手的部分是: 一)找到ContentResolver的,因爲我在一個活動是沒有,可是在一個片段:
this.View.Context.ContentResolver
b)中找到ManagedQuery對象,這也是活動的屬性
this.Activity.ManagedQuery
C)提供正確的選擇,因爲我有一個圖像是從MediaStore:
string selection = Android.Provider.MediaStore.Images.Media.InterfaceConsts.Id + " =? ";
我希望這仍然可以幫助你,雖然這是2個月前。
private string GetPathToImage(Android.Net.Uri uri) {
string doc_id = "";
using (var c1 = this.View.Context.ContentResolver.Query(uri, null, null, null, null)) {
c1.MoveToFirst();
String document_id = c1.GetString(0);
doc_id = document_id.Substring(document_id.LastIndexOf(":") + 1);
}
string path = null;
// The projection contains the columns we want to return in our query.
string selection = Android.Provider.MediaStore.Images.Media.InterfaceConsts.Id + " =? ";
using (var cursor = this.Activity.ManagedQuery(Android.Provider.MediaStore.Images.Media.ExternalContentUri, null, selection, new string[] { doc_id }, null)) {
if (cursor == null) return path;
var columnIndex = cursor.GetColumnIndexOrThrow(Android.Provider.MediaStore.Images.Media.InterfaceConsts.Data);
cursor.MoveToFirst();
path = cursor.GetString(columnIndex);
}
return path;
}
您能否提供項目的文件選取器代碼? –
我想要走的路是:'1。文件f =新文件(Uri); var absp = f.AbsolutePath;' – Pierre