Android Filter Intent Chooser

时间:2016-07-06 20:51:15

标签: android file android-intent filter explorer

我想过滤您在下面看到的列表。只能选择文件浏览器。

intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory() + "/Android/data/" + getContext().getPackageName() + "/Files");
intent.setDataAndType(uri, "*/*");
startActivity(Intent.createChooser(intent, getString(R.string.openFolder)));

Example

修改

Example

4 个答案:

答案 0 :(得分:1)

这是不可能的。没有魔法Intent总是只会打开一些神奇的应用类别。

首先,任何人都可以编写任何应用来响应任何所需的隐式Intent

其次,"文件浏览器"没有通用的定义。什么认为"文件浏览器"可能与其他开发人员认为的文件浏览器"是的,反过来可能与用户认为文件浏览器"是。根据任何人的定义,用户的设备甚至可能 "文件浏览器"

答案 1 :(得分:0)

Intent中添加它,它会打开ES文件资源管理器

Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(filePath)));
intent.setPackage("com.estrongs.android.pop");
startActivity(shareIntent);

答案 2 :(得分:0)

确保目录存在,然后尝试:

SELECT DISTINCT ?s ?o 
   WHERE 
      {
         {
            ?s  <http://www.w3.org/2000/01/rdf-schema#label>  ?o      . 
            ?o  bif:contains                                  "Ramji"
         } 
      UNION
         {
            ?s  <http://www.w3.org/2000/01/rdf-schema#label>  ?o      . 
            ?o  bif:contains                                  "Manjhi"
         }
      }
   ORDER BY ?s

答案 3 :(得分:0)

您可以调用以下功能 类型是file-explorer的包名称 就像你想要分享数据到Twitter那样称之为 initShareIntent(&#34; com.twitter.android&#34;);

  private void initShareIntent(String type) {
        boolean found = false;
        Intent share = new Intent(android.content.Intent.ACTION_SEND);
        share.setType("image/jpeg");

        // gets the list of intents that can be loaded.
        List<ResolveInfo> resInfo = getActivity().getPackageManager().queryIntentActivities(share, 0);
        if (!resInfo.isEmpty()) {
            for (ResolveInfo info : resInfo) {
                if (info.activityInfo.packageName.toLowerCase().contains(type) ||
                        info.activityInfo.name.toLowerCase().contains(type)) {


                 //Share Data here

                    share.setPackage(info.activityInfo.packageName);
                    found = true;
                    break;
                }
            }
            if (!found) {
                Toast.makeText(getActivity(), share_type + " not found in Device", Toast.LENGTH_SHORT).show();
                return;
            }

            startActivity(Intent.createChooser(share, "Select"));
        }
    }

它只会打开特定的应用程序来共享数据。试试这个,让我知道它是否对你有帮助