在android中使用intent选择任何文件

在android中使用intent选择任何文件,android,intentfilter,filepicker,Android,Intentfilter,Filepicker,我使用下面的方法调用pick any file,但它不能正常工作 private void fileIntent(int file) { if ((ActivityCompat.checkSelfPermission(ICShowFileCabinetDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) && Build

我使用下面的方法调用pick any file,但它不能正常工作

private void fileIntent(int file)
    {
        if ((ActivityCompat.checkSelfPermission(ICShowFileCabinetDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, file);
        } else {
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("*/*");
            startActivityForResult(Intent.createChooser(intent, "Select File"), file);
        }

    }
在清单中设置了以下权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
选择文件打开每当我点击选择文件在按钮点击。但所有文件都显示为隐藏,除了图像,单击“停止工作”。在没有方法的情况下,单击按钮可以正常工作。如果有人发现代码中有错误,请告诉我


谢谢

尝试此代码此代码仅适用于.xls。请使用您的代码。 或者在清单文件中添加读写权限

oncreate声明权限

 if (ContextCompat.checkSelfPermission(this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        } else {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23
            );
        }
    }
点击一下你的按钮,写下这段代码

path= String.valueOf(Environment.getExternalStorageDirectory());
                File file = new File(path);
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setDataAndType(Uri.fromFile(file), "application/vnd.ms-excel");

                try {
                    startActivityForResult(pdfOpenintent.createChooser(intent, "Select file"), 0);                }
                catch (ActivityNotFoundException e) {

                }
onactivityresult yud获取文件路径

public void onActivityResult(int requestCode, int resultCode, Intent result){
        if (resultCode == RESULT_OK){
            if (requestCode == 0) {
                Uri data = result.getData();

                else{
                    //  CommonMethods.ShowMessageBox(CraneTrackActivity.this, "Invalid file type");
                    Toast.makeText(Import_act.this,"Wrong File Selected ", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

尝试此代码此代码仅适用于.xls。请使用您的代码。 或者在清单文件中添加读写权限

oncreate声明权限

 if (ContextCompat.checkSelfPermission(this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        } else {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23
            );
        }
    }
点击一下你的按钮,写下这段代码

path= String.valueOf(Environment.getExternalStorageDirectory());
                File file = new File(path);
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setDataAndType(Uri.fromFile(file), "application/vnd.ms-excel");

                try {
                    startActivityForResult(pdfOpenintent.createChooser(intent, "Select file"), 0);                }
                catch (ActivityNotFoundException e) {

                }
onactivityresult yud获取文件路径

public void onActivityResult(int requestCode, int resultCode, Intent result){
        if (resultCode == RESULT_OK){
            if (requestCode == 0) {
                Uri data = result.getData();

                else{
                    //  CommonMethods.ShowMessageBox(CraneTrackActivity.this, "Invalid file type");
                    Toast.makeText(Import_act.this,"Wrong File Selected ", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

我认为你应该像这样添加intent.addCategory(intent.CATEGORY\u OPENABLE);
. 有关更多信息,请访问此链接。我希望这能对你有所帮助。

我认为你应该像这样添加intent.addCategory(intent.CATEGORY\u OPENABLE);
. 有关更多信息,请访问此链接。我希望这能对您有所帮助。

您能更新您的日志吗?您的android版本是什么。。您正在
中给出意图,否则请发布日志?抱歉,朋友问题已更新。应用程序没有崩溃。请参考图片附件。按照我的回答,您可以使用您的文件扩展名而不是xls@Hasmukhkachhatiya它只适用于excel文件,对吗?我的要求是选择任何文件。你能更新你的日志吗?你的android版本是什么。。您正在
中给出意图,否则请发布日志?抱歉,朋友问题已更新。应用程序没有崩溃。请参考图片附件。按照我的回答,您可以使用您的文件扩展名而不是xls@Hasmukhkachhatiya它只适用于excel文件,对吗?我的要求是选择任何文件。