24

一部のアプリでAndroidのファイルを選択/開くためのこのダイアログを見たことがありますが、ネイティブのように思えます。しかし、自分のアプリでそれを使用する方法が見つかりません。添付のスクリーンショットの言語はドイツ語ですが、誰かがそれを認識できると確信しています. ファイルダイアログのスクリーンショット

4

3 に答える 3

58

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
        }
    }

Screenshot

于 2016-04-11T20:12:32.403 に答える
8

これは Storage Access Frameworkのシステム UI のようです。ACTION_OPEN_DOCUMENTユーザーが既存のドキュメントを開くことを許可するか、ACTION_CREATE_DOCUMENTユーザーが新しいドキュメントを作成できるようにするために使用します。

ただし、これはファイルUI ではありません。コンテンツUIです。ユーザーは、ローカルに保存されていないものを参照できます — スクリーンショットでは、ユーザーは Google ドライブと One Drive の領域を参照できます。そして、得られるのはファイルパスではなくUriコンテンツへのポイントです。

于 2016-04-11T19:51:38.567 に答える