- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题的简短版本..
是否可以启动 ACTION_SEND Intent 以共享光盘上的文件,但共享使用的文件名与光盘上的文件名不同?
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/png");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile("somepath/3c72ae1adacb.dat"));
// BEGIN Hopefully something like this exists....
shareIntent.putExtra(Intent.EXTRA_FILENAME, "CuteKittens.png"));
// END
startActivity(shareIntent);
长版...
出于安全原因,我的 Android 应用程序中使用的一些文件在光盘上的文件名模糊不清,例如“3c72ae1adacb.dat”。
我希望已登录的用户能够共享这些文件,但要使用他们未隐藏的文件名,例如“CuteKittens.png”。
这可以实现吗? (理想情况下,无需将文件复制到光盘上,共享副本并最终将其删除,这对于如此简单的事情来说似乎需要大量工作)。
最佳答案
一般情况下,您不应使用 file://
Uri
值,因为无法保证其他应用可以读取这些文件。
欢迎您实现提供这些文件的 ContentProvider
,其中您的 Uri
值具有“未隐藏的文件名”。所以,而不是:
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile("somepath/3c72ae1adacb.dat"));
你会:
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://your.authority.goes.here/files/CuteKittens.png"));
并且 ContentProvider
会通过某种方式知道 CuteKittens.png
的内容位于 somepath/3c72ae1adacb.dat
.
内置的 FileProvider
几乎就是您所需要的,除了我假设文件名(原始文件名和重命名的文件名)在编译时是未知的。
关于android - ACTION_SEND - 共享与光盘上不同文件名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222702/
我想用 list-style-type: disc; 列出一些程序。 但是列表项没有这个“disc”并且有滚动条,我不知道为什么......看这里(Link)。 它应该只是一个带有光盘图标的列表,每个
使用 cygwin 终端,我的 .bashrc 中有以下内容: export WINHOME="/cygdrive/c/Users/userName" export TUTORING="$WINHOM
我创建了一个别名,以免每次我移动到一个新目录时都写 ls: alias cl='cd_(){ cd "$@" && ls; }; cd_' 假设我有一个名为“下载”的文件夹(我当然碰巧有),所以我只需
我是一名优秀的程序员,十分优秀!