Запрашиваю его вот так:
global::Android.OS.Environment.ExternalStorageDirectory.Path
В результате, вместо SD карточки получаю "/storage/sdcard0". В тоже время ES Explorer SD карточку показывает как "/storage/sdcard1". Вот как мне такой путь получать?
я так пробую private string ApiGetRemovableCacheDir() { string path = null; if (global::Android.OS.Environment.IsExternalStorageRemovable && App.Context.ExternalCacheDir.CanWrite()) { path = App.Context.ExternalCacheDir.Path; if (CheckAccessAuthority(path)) { SmartLog.Write(GetType().Name, MethodBase.GetCurrentMethod().Name, string.Format("ApiGetRemovableCacheDir() with App.Context.ExternalCacheDir.Path returned path {0}", path), MessageType.Info); return path; } else { path = null; } } if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat) { Java.IO.File[] files; try { files = App.Context.GetExternalCacheDirs(); if (files == null) { SmartLog.Write(GetType().Name, MethodBase.GetCurrentMethod().Name, "GetExternalCacheDirs return null files[] array", MessageType.Info); return path; } // идем с конца и смотрим доступные пути for (int i = files.Length - 1; i >= 0; i--) { if (!string.IsNullOrEmpty(files[i].Path) && files[i].CanWrite()) { path = files[i].Path; if (path == null) { continue; } if (CheckAccessAuthority(path)) { SmartLog.Write(GetType().Name, MethodBase.GetCurrentMethod().Name, string.Format("ApiGetRemovableCacheDir() with GetExternalCacheDirs() returned path {0}", path), MessageType.Info); return path; } path = null; } } } catch (Exception e) { path = null; SmartLog.Write(GetType().Name, MethodBase.GetCurrentMethod().Name, e.Message, MessageType.Error); } } return path; }
но надо посомтреть в документации, может появились какие нибудь нугеты или апи обновилось для работы с SD картами
Обсуждают сегодня