我需要将一些数据保存到SD卡,我已经将权限添加到AndroidManifest.xml文件中,当我在Android 4.12 mobile中测试它时,我可以得到正确的结果.
但是当我在Android 5.1移动设备中测试它时,我打开失败:EACCES(Permission denied)错误,为什么?
顺便说一句,我已经阅读了Android 6.0开放失败:EACCES(Permission denied)和Exception'开放失败:EACCES(Permission denied)'在Android上,但现在我的手机是SamSung Android 5.1
码
 private void ActionUploadFiles(Map<String, String> files,IHTTPSession session,String uploadFolder){
        try{
            Set<String> keys = files.keySet();
            for (String key:keys) {
                String location = files.get(key);
                File source = new File(location);
                String filename= session.getParms().get(key);
                filename=FilenameUtils.getName(filename);
                File target = new File(uploadFolder,filename);
                FileUtils.copyFile(source,target);
            }
        }
        catch (Exception e) {
            Utility.LogError("Upload Error: "+ e.getMessage());
        }
    }
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="info.dodata.wifi">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.android.vending.BILLING" />
的build.gradle
apply plugin: 'com.android.application'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {      
        multiDexEnabled true
        applicationId "info.dodata.wifi"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 4
        versionName "1.04"
        archivesBaseName = "WiFiFileTransfer-V" + versionName
    }
    productFlavors {
        free {
            applicationId "info.dodata.wifi"
        }
        pro {
            applicationId "info.dodata.wifi.pro"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "boolean", "IsDebugMode", "false"
        }
        debug {
            buildConfigField "boolean", "IsDebugMode", "true"
        }
    }
}
因为targetSdkVersion 23这就是您获得安全异常的原因,您必须降级targetSdkVersion 22或添加运行时权限。请检查此链接https://developer.android.com/training/permissions/requesting.html
| 归档时间: | 
 | 
| 查看次数: | 1033 次 | 
| 最近记录: |