2016-04-11 19 views
1

SD kartta yeni klasör oluşturmak için "Depolama Erişim Çerçevesi" ni nasıl kullanacağımı bilmek istiyorum. Bana kodu verirseniz çok iyi olurdu. Zaten başka soruları ve cevapları aradım ancak nasıl yapıldığını buldum.Depolama Erişimi Çerçevesi'ni kullanarak sd kartında yeni klasör nasıl oluşturulur?

"CommonsWare" yanıtı başına zaten çalışan bazı kodları ekleyin. Ben Android işletim oluşturabilir "SD karta yeni bir klasör oluşturun" olamaz 5.1.1

public void newFolder(View view) 
    { 
     Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); 
     startActivityForResult(intent, NEW_FOLDER_REQUEST_CODE); 
    } 

    private static final int NEW_FOLDER_REQUEST_CODE = 43; 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent resultData) { 
     super.onActivityResult(requestCode, resultCode, resultData); 

     Uri currentUri = null; 

     if (resultCode == Activity.RESULT_OK) 
     { 
      if (requestCode == NEW_FOLDER_REQUEST_CODE) 
      { 
       if (resultData != null) { 
        currentUri = resultData.getData(); 
        DocumentFile pickedDir = DocumentFile.fromTreeUri(this, currentUri); 
        DocumentFile newDir = pickedDir.createDirectory("MyFolder"); 
        textView.setText(newDir.getName()); 
       } 
      } 
     } 
    } 

cevap

3

ile telefonumdan SS A5 üzerinde sd kart yeni bir klasör yarattığını tespit tek yoludur Not. Kullanıcının seçtiği başka bir klasörün içinde yeni bir klasör oluşturabilirsiniz, ancak kullanıcıyı çıkarılabilir depolama alanını seçmeye zorlayamazsınız.

başka klasörün içinde yeni bir klasör oluşturmak için bu çalışması gerekir:

  1. , an ACTION_OPEN_DOCUMENT_TREEIntent üzerinde startActivityForResult() ile bir etkinlik başlatın

    kullanıcı bir klasör seçmek için izin vermek. Klasörde yeni bir şey oluşturduğunuzdan emin olmak için FLAG_DIR_SUPPORTS_CREATE'u ekleyin.

  2. onActivityResult(), kullanıcı seçti olursa olsun bir çocuk olarak yeni bir klasör oluşturmak için üzerine bir DocumentFile olsun Uri ardından call createDirectory() sarın.

+0

Çok teşekkür ederim. Bu iş. –

İlgili konular