Enrico
Enrico

Reputation: 6276

Xamarin Android: create folder on PublicDirectory for my app

I have a funny but tricky problem with Android. In my Xamarin Forms project I want to create a folder where I store all files generated from my app so I can access to them easily via a FileManager.

Until this morning in Android I used

Environmentstring path = Android.OS.Environment.
                         GetExternalStoragePublicDirectory(
                             Android.OS.Environment.DirectoryDocuments).ToString();
Environmentpath += "/MyApp";
EnvironmentDirectory.CreateDirectory(path);

I added some new components to my solutions and now everything is denied.

System.UnauthorizedAccessException: Access to the path "/storage/emulated/0/Documents/MyApp" is denied.

I changed then the AndroidManifest.xml like

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_GSERVICES" />
</manifest>

But now I can't create anything in this folder. Just for example, I'm using the same code in other my application and the result is

FileManager example

Any suggestions? Thanks

Upvotes: 1

Views: 4887

Answers (1)

testing
testing

Reputation: 20289

As user1230268 stated try to go to your app manager on your device and enable the permissions. For me it was

Settings > Device > Apps > YourAppName > Permissions > Storage

Enable it and you should be good to go.

Upvotes: 1

Related Questions