如何使用 jCIFS 在 Android 中使用默认查看器打开文件
Posted
技术标签:
【中文标题】如何使用 jCIFS 在 Android 中使用默认查看器打开文件【英文标题】:How to open files in Android with default viewer using jCIFS 【发布时间】:2011-12-23 06:22:10 【问题描述】:我正在使用免费的 jCIFS 库通过 CIFS 连接到我的 NAS 设备,它运行良好。我可以毫无问题地连接并获取文件名列表等。
现在我想在默认的 android 应用程序中打开其中一个文件 - 即应该在音乐播放器中打开音乐文件、在图库中打开图像、在视频播放器中打开视频文件等等。问题不在于获取 MIME 类型等等。问题是我不想先下载文件,它们应该被流式传输。
有谁知道如何做到这一点?我知道 CifsManager (另一个第三方应用程序)能够做类似的事情,但它不使用 jCIFS 并且它需要 root 访问权限才能安装驱动器。我的应用程序不需要 root 访问权限,这一点很重要。
您可以在此处找到 jCIFS 库: http://jcifs.samba.org/
【问题讨论】:
【参考方案1】:您可以使用 SmbFileInputStream 来读取文件。 请浏览文档jcifs.smb.SmbFileInputStream
【讨论】:
我需要在 Android 的默认查看器中启动任何选定的文件,而不是自己处理读取 - 我需要将它传递给另一个应用程序。如果我可以传递FileInputStream
,那就太好了,但我不认为或不知道这是否可能。
将 InputStream 转换为 File() 并使用 Intents 打开具有 mime 类型的文件..如果您不知道 mime 类型..请参考***.com/questions/6265298/…
那行不通 - 就像我在问题中所说的那样,我不想将文件下载到设备上,它们需要流式传输。
@Michell Bak 我不确定您将如何完成流式传输文件,但我正在做的是将文件复制到设备上的公共路径(外部存储上的下载文件夹),打开该文件及其指定的应用程序,然后删除该文件。我按照 aNi 的建议做了,它对我很有用。以上是关于如何使用 jCIFS 在 Android 中使用默认查看器打开文件的主要内容,如果未能解决你的问题,请参考以下文章
在 android 2.3 上使用 jcifs 库时出现 NoClassDefFound 异常