Moussawi7
Moussawi7

Reputation: 13269

Unable to create folder on android 6.0.1

I am using official file API Plugin on my cordova application, where it work fine on my android devices except who has Android 6.0.1.

It's unable to create directory, and throw error number 2 which is SECURITY_ERR

JS code:

  window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (response) {
            response.root.getDirectory("folderNamexxx", {create: true, exclusive: false}, function () {
                alert("success");
            }, function (e) {
                alert(JSON.stringify(e));//error fired here
            });
        }, function (e) {
            alert("error");
        });

Androidmanifest.xml:

<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

config.xml:

 <preference name="AndroidPersistentFileLocation" value="Compatibility" />

Upvotes: 2

Views: 517

Answers (2)

Gandhi
Gandhi

Reputation: 11935

Ensure to use latest cordova file plugin (4.2.0). Also ensure to have proper permission settings in device, you will be good to go. Check out this link for more info.

Upvotes: 1

J.D.
J.D.

Reputation: 1411

You have to set run time permission before creating any folder ,(Read and write external storage) Please Follow This link have example hot to set run time permission Link

If you don't want to set Runtime permission and OK with api level 22 than change yore target sdk to 22

Upvotes: 1

Related Questions