Я нашел сообщение, содержащее следующий метод на форумах Xamarin.
https://forums.xamarin.com/discussion/103478/how-to-get-path-to-external-sd-card
public static string GetBaseFolderPath( bool getSDPath = false )
{
string baseFolderPath = "";
try
{
Context context = Application.Context;
Java.IO.File[] dirs = context.GetExternalFilesDirs( null );
foreach ( Java.IO.File folder in dirs )
{
bool IsRemovable = Android.OS.Environment.InvokeIsExternalStorageRemovable( folder );
bool IsEmulated = Android.OS.Environment.InvokeIsExternalStorageEmulated( folder );
if ( getSDPath ? IsRemovable && !IsEmulated : !IsRemovable && IsEmulated )
baseFolderPath = folder.Path;
}
}
catch ( Exception ex )
{
Console.WriteLine( "GetBaseFolderPath caused the follwing exception: {0}", ex );
}
return baseFolderPath;
}
Когда будет получено basefolderPath
, вы можете получить доступ к своей музыкальной папке и файлу, добавив это к адресу (basefolderPath-string).
Например,
baseFolderPath += "/YOUR_MUSIC_FOLDER/YOUR_MUSIC_FILE"
ДОБАВЛЕНИЕ В ВАШ ВТОРОЙ ВОПРОС
Чтобы попасть в одну папку хранения, используйте следующий метод:
Android.OS.Environment.getExternalStorageDirectory()
Перед использованием этого метода вам может понадобиться добавить следующее разрешение в манифест
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />