How to use native android file-open-dialog?

后端 未结 2 1860
Happy的楠姐
Happy的楠姐 2020-12-13 06:50

I\'ve seen this dialog to pick/open a file on android in some apps and it seems to me as the native one. But I can\'t find a way to use it in my own apps. The language of th

相关标签:
2条回答
  • 2020-12-13 07:46

    That appears to be the system UI for the Storage Access Framework. You would use ACTION_OPEN_DOCUMENT to allow the user to open an existing document, or ACTION_CREATE_DOCUMENT to allow the user to create a new document.

    However, this is not a file UI. It is a content UI. The user can browse things that are not locally stored — in the screenshot, the user can browse their Google Drive and One Drive areas. And, what you get is a Uri pointing to content, not a file path.

    0 讨论(0)
  • 2020-12-13 07:48

    You can use the intent ACTION_GET_CONTENT with the MIME type */*.

    It will return the URI in onActivityResult()

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Intent intent = new Intent()
            .setType("*/*")
            .setAction(Intent.ACTION_GET_CONTENT);
    
            startActivityForResult(Intent.createChooser(intent, "Select a file"), 123);
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode == 123 && resultCode == RESULT_OK) {
                Uri selectedfile = data.getData(); //The uri with the location of the file
            }
        }
    

    0 讨论(0)
提交回复
热议问题