2013-11-29 4 views
1
jpegCallback = new PictureCallback() 
     { 
     public void onPictureTaken(byte[] data, Camera camera) 
     { 
      //int imageNum = 0; 

      String Name = PatientInfo.getText().toString(); 

      Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      File imagesFolder = new File(Environment.getExternalStorageDirectory().toString() + Name); 
      imagesFolder.mkdirs(); 
      Date d = new Date(); 
      CharSequence s = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime()); 
      File output = new File(imagesFolder, s.toString() + ".jpg"); 
      // String fileName = "image_" + String.valueOf(imageNum) + ".jpg"; 
     // File output = new File(imagesFolder, fileName); 
     /*  while (output.exists()){ 
       imageNum++; 
       fileName = "image_" + String.valueOf(imageNum) + ".jpg"; 
       output = new File(imagesFolder, fileName); 
      }*/ 
      Uri uriSavedImage = Uri.fromFile(output); 
      imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
      OutputStream imageFileOS; 

      try { 
       imageFileOS = getContentResolver().openOutputStream(uriSavedImage); 
       imageFileOS.write(data); 
       imageFileOS.flush(); 
       imageFileOS.close(); 

       Toast.makeText(AndroidCamera.this, 
         "Image saved: ", 
         Toast.LENGTH_LONG).show(); 

       } 
      catch (FileNotFoundException e) 
       { 
       e.printStackTrace(); 
       } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
      finally 
      {} 
      Log.d("Log", "onPictureTaken - jpeg"); 
     } 
    }; 

Это пример кода. Я пытаюсь создать папку с userinput при ее вводе. Каждый раз, когда мне нужно создавать новые папки при вводе нового имени пользователя. Но в этом есть что-то недостающее. Все предложения будут полезны.Создание папки с пользовательским вводом: Android

+0

Какова точная проблема? –

+0

Мне нужно создать папку при вводе имени пользователя. здесь никакая папка не создается, когда я ввожу имя. – Aswathy

ответ

2

Изменить

File imagesFolder = new File(Environment.getExternalStorageDirectory().toString() + Name); 

withFile

File imagesFolder = new File(Environment.getExternalStorageDirectory(), Name); 

Пожалуйста, убедитесь, что также WRITE_EXTERNAL_PERMISSION в манифесте, и что Name не является нулевым

+0

Оба должны иметь тот же результат, что и в документации. Можете ли вы объяснить, почему последний работает, но первый (по-видимому) нет? –

+1

он пропустил разделитель файлов, объединяя имена. Он пытается создать каталог внутри/mnt с именем sdcardname, и у него нет разрешения на это @JeffreyKlardie – Blackbelt

+0

Красиво заметили. Просто проверьте источник Android, и в итоге конструкторы делают то же самое. –

Смежные вопросы