当前位置: 首页 > 知识库问答 >
问题:

android使用内置库打开特定文件夹

国俊艾
2023-03-14

我正在尝试使用gallery打开特定文件夹,并参考了gallery中的其他类似问题open image form Build\u,并实现了以下代码,但仍然失败并报告错误(如以下logcat所示):

选择特定文件夹:

private void selectSpecificFolder()
{
    File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyFolder");
    Log.d("File path ", dir.getPath());
    String dirPath=dir.getAbsolutePath();
    if(dir.exists() && dir.isDirectory()) {
        Intent intent = new Intent(Intent.ACTION_VIEW, null);
        intent.setType("image/*");
        intent.setData(Uri.fromFile(dir));

        Log.d("b4performSpecificCrop_startActivityForResult::", Integer.toString(3));
        startActivityForResult(intent, 3);
        Log.d("afterperformSpecificCrop_startActivityForResult::", Integer.toString(3));
    }
    else
    {
        Toast.makeText(this, "No file exist to show", Toast.LENGTH_LONG).show();
    }  
}

活动结果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    super.onActivityResult(requestCode, resultCode, data);      
    if (requestCode == 3)
    {
        Log.d("INSIDE_ONACTIVITY_REQUEST3", Integer.toString(3));
        if (data==null) 
        {
            Toast.makeText(this,"No image selected",Toast.LENGTH_LONG).show();
        }
        else
        {
            Uri selectedImageUri = data.getData();
            String selectedImagePath = selectedImageUri.getPath();

            if(selectedImagePath!=null)
            {
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                intent.setData(selectedImageUri);
                startActivity(intent);
            }
        }   
    }
03-02 23:56:09.910: D/b4performSpecificCrop_startActivityForResult::(18133): 3
03-02 23:56:09.940: D/Instrumentation(18133): checkStartActivityResult  :Intent { act=android.intent.action.VIEW dat=file:xxxxx }
03-02 23:56:09.940: D/Instrumentation(18133): checkStartActivityResult  inent is instance of inent:
03-02 23:56:09.950: D/AndroidRuntime(18133): Shutting down VM
03-02 23:56:09.950: W/dalvikvm(18133): threadid=1: thread exiting with uncaught exception (group=0x40c6e1f8)
03-02 23:56:09.965: E/AndroidRuntime(18133): FATAL EXCEPTION: main
03-02 23:56:09.965: E/AndroidRuntime(18133): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:xxxxx }
03-02 23:56:09.965: E/AndroidRuntime(18133):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1535)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1387)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at android.app.Activity.startActivityForResult(Activity.java:3195)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at com.abc.drawing.Doodlz.performSpecificCrop(Doodlz.java:1712)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at com.abc.drawing.Doodlz.access$20(Doodlz.java:1701)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at com.abc.drawing.Doodlz$43.onClick(Doodlz.java:1184)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at android.os.Looper.loop(Looper.java:137)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at android.app.ActivityThread.main(ActivityThread.java:4511)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at java.lang.reflect.Method.invokeNative(Native Method)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at java.lang.reflect.Method.invoke(Method.java:511)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
03-02 23:56:09.965: E/AndroidRuntime(18133):    at dalvik.system.NativeStart.main(Native Method)

在Logcat中,它报告android。所容纳之物ActivityNotFoundException:找不到可处理意图的活动{act=android.Intent.action.VIEW dat=file:xxxxx}这意味着什么,如何解决?谢谢

PS:对于该html" target="_blank">应用程序,它没有显示该特定文件夹中所有图像的单独布局。取而代之的是一个“打开文件夹”按钮,以便当用户按下按钮时。它只需使用内置库直接显示特定文件夹中的图像。

共有1个答案

司马建柏
2023-03-14

我想问题出在AndroidManifest中。xml

这是此问题的主要来源,请检查Mark Murphy的回答:https://groups.google.com/forum/?fromgroups#!主题/android初学者/nYFBeAgmkMU

这是一个次要但基本相同的问题Android:找不到处理意图错误的活动?它将如何解决

 类似资料:
  • 我们正在构建一个相机应用程序,将照片保存在图库中的特定文件夹中。我们必须使用意图在图库中打开我们应用程序的文件夹。我们正在使用此代码,但它会显示所有文件夹。

  • 我有一个相机应用程序,可以将图像保存到图库内的单独文件夹中。我的文件夹的路径是 当我点击按钮时,我需要打开保存图像的文件夹。我已经使用了所有可用的解决方案。 这就是我阅读路径的方式。如果我错了,请告诉我。 如何启动新的意图并打开文件?

  • 我有一个使用摄像头的应用程序 1) 在该应用程序中,当用户打开多媒体资料时,我传递了一个打开默认电话多媒体资料的意图,但我希望它只打开特定文件夹?? 我如何才能做到这一点 2) 我想压缩我从图库中选择的图像?? 提前感谢!!!

  • 当我试图打开一个特定的文件夹时,我有一个问题,我有这个代码来打开我的文件夹。 该代码只打开最近的文件夹,在那里我可以在我的图库中看到我的所有照片,而不打开特定的文件夹 我正在用API 26进行测试

  • 我正在使用下面的命令获取前1000行数据: 但是,我如何调整这个命令来获取数据范围。例如,提取行700到900之间的间隔。 还有一件事,我怎么能只导出几个变量。例如,我的数据库有120列,但我只想保存变量年份(第1列)、出生日期(第4列)和起源状态(第100列)。

  • 问题内容: 在整个Internet上搜索,找不到有效的代码。我如何获取txt文档的内容并将其返回。 假设我在(src / my.proovi.namespace /data.txt)中有一个txt文件,并且我创建了一个名为refresh_all_data()的方法;我想要收集和返回数据的地方。在主要活动方法中,我只需要将内容作为(String content = refresh_all_data(