Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android can';t在/mnt/sdcard中创建文件夹_Android - Fatal编程技术网

Android can';t在/mnt/sdcard中创建文件夹

Android can';t在/mnt/sdcard中创建文件夹,android,Android,我想我做的一切都是正确的,首先创建一个文件夹 我可以稍后在我的应用程序中写入,但它似乎不起作用。 关于我失败的原因有什么线索吗 它会正确尝试创建/mnt/sdcard/gradebook 我有使用权限android:name=“android.permission.WRITE\u EXTERNAL\u STORAGE” 在我的舱单上。我在一台真正的设备(三星Galaxy S)上运行,我没有使用 SD卡在连接到我的计算机时用作存储 boolean mExternalStorageAvail

我想我做的一切都是正确的,首先创建一个文件夹 我可以稍后在我的应用程序中写入,但它似乎不起作用。 关于我失败的原因有什么线索吗

它会正确尝试创建/mnt/sdcard/gradebook

我有使用权限android:name=“android.permission.WRITE\u EXTERNAL\u STORAGE” 在我的舱单上。我在一台真正的设备(三星Galaxy S)上运行,我没有使用 SD卡在连接到我的计算机时用作存储

    boolean mExternalStorageAvailable = false;
    boolean mExternalStorageWriteable = false;
    String state = Environment.getExternalStorageState();

    if (Environment.MEDIA_MOUNTED.equals(state)) {
        // We can read and write the media
        mExternalStorageAvailable = mExternalStorageWriteable = true;
    } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        // We can only read the media
        mExternalStorageAvailable = true;
        mExternalStorageWriteable = false;
        Toast.makeText(this,"This Application needs a writable external storage (sdcard).",Toast.LENGTH_SHORT).show();
        finish();
    } else {
        // Something else is wrong. It may be one of many other states, but all we need
        //  to know is we can neither read nor write
        mExternalStorageAvailable = mExternalStorageWriteable = false;
        Toast.makeText(this,"This Application needs a mounted external storage (sdcard).",Toast.LENGTH_SHORT).show();
        finish();

    }


    File folder = new File(Environment.getExternalStorageDirectory () + "/gradeBook");
    boolean success = false;
    if(!folder.exists()){
         success = folder.mkdir();
    }
    if (!success) {
        Log.e("FILE", "can't create " + folder);
    }
    else 
    {
        Log.i("FILE", "directory is created"); 
    }
这是舱单

<?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.ulsanonline.gradebook" 
    android:versionName="@string/version" 
    android:installLocation="auto" 
    android:versionCode="2">
    <uses-sdk android:minSdkVersion="8"></uses-sdk> 
    <application 
        android:icon="@drawable/icon" 
        android:debuggable="true" 
        android:persistent="false" 
        android:hasCode="true"
        android:minSdkVersion="8">
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.CAMERA" />
        <activity 
            android:name=".CourseWork" 
            android:label="@string/app_name" 
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

使用权限
必须直接作为
子项放置,因此它应该是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.ulsanonline.gradebook" 
    android:versionName="@string/version" 
    android:installLocation="auto" 
    android:versionCode="2">
    <uses-sdk android:minSdkVersion="8"></uses-sdk> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <application 
        android:icon="@drawable/icon" 
        android:debuggable="true" 
        android:persistent="false"

试试这个

//Declare a string 

String NewFolder = "/myNewFolder";
String extStorageDirectory;

//external storage directory path
    extStorageDirectory = Environment.getExternalStorageDirectory().toString();    
//creating a new folder
File mkTarDir=new File(extStorageDirectory + NewFolder);
  mkTarDir.mkdir();
//path to save a image              
File file = new File(extStorageDirectory + NewFolder ,"myimage"+String.valueOf(System.currentTimeMillis()) + ".PNG");

你有没有在你的电脑上安装过磁盘?如果您尝试写入连接到PC的磁盘,您将被拒绝权限。这很有效!非常感谢……但是相机放在哪里就工作了,没有引起任何问题,这是怎么回事?可能是因为我的应用程序没有控制相机,只是为了拍照而转移到一个未命名的活动。我使用Intent Intent=新Intent(MediaStore.ACTION\u IMAGE\u CAPTURE);而不是我包裹里的任何东西。