【问题标题】:Android use bottomsheet to select existing document viewer to Open myfiles documentsAndroid 使用底页选择现有文档查看器以打开 myfiles 文档
【发布时间】:2020-07-31 08:21:47
【问题描述】:

一旦我从我的 Android 应用程序中单击一个文档并打开,找到一种创建底页的方法有点令人困惑。 bottomsheet 应该像这个附加的图像,并且应该有一种方法可以在我的设备中选择现有的文档预览器。 据我所知,iOS 正在快速展望未来。我的问题是我们如何在 android 中实现相同的功能?是否有可以直接在 android 应用程序中使用的内置底部表。我们不能在这里使用 sharesheet 选项吗?.

【问题讨论】:

    标签: android android-studio android-layout kotlin android-fragments


    【解决方案1】:

    下面的代码会帮助你。

     public void open_file(String filename) {
        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + filename);
        Uri uri = FileProvider.getUriForFile(getActivity(), getContext().getApplicationContext().getPackageName() + ".provider", file);
        String mime = getContext().getContentResolver().getType(uri);
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setDataAndType(uri, mime);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(intent);
    
    }
    
    public String get_mime_type(String url) {
        String ext = MimeTypeMap.getFileExtensionFromUrl(url);
        String mime = null;
        if (ext != null) {
            mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
        }
        return mime;
    }
    

    特别说明 - 使用此代码行处理 Uri uri = FileProvider.getUriForFile(getActivity(), getContext().getApplicationContext().getPackageName() + ".provider", file); 使用这个android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyond app through Intent.getData()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2012-02-29
      • 2018-06-27
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多