在做一些R& D时,我使用以下语句找到了
code
Uri uri = (Uri) getIntent().getExtras().get("android.intent.extra.STREAM");
我已经扫描了整个项目,以确定该活动是否来自任何其他活动,但没有找到任何活动.任何人都可以告诉我这个语句将返回什么,以及代码中的“android.intent.extra.STREAM”语句是什么,是否是常量,如果是,它的值是什么?
提前致谢.
快乐的编码
解决方法
此语句将返回名为“android.intent.extra.STREAM”的额外名称.无论发布什么活动意图设置该值,并且没有简单的方法来判断该数据是什么,而不知道它是如何使用的,或者它在何处/如何设置.不要忘记任何活动或应用程序都可以发布意图.
找到你的答案:
public static final String EXTRA_STREAM Since: API Level 1 A content: URI holding a stream of data associated with the Intent,used with ACTION_SEND to supply the data being sent. Constant Value: "android.intent.extra.STREAM"
因此,我认为这是为了分享图像而设计的意图编码不良(使用值而不是定义的静态常量)的结果.意图包括Intent.EXTRA_STREAM extra作为要共享的图像(在这种情况下)的数据流. IMO,代码应该是:
Uri uri = (Uri) getIntent().getExtras().get(Intent.EXTRA_STREAM);
但无论如何,它似乎是将二进制数据流附加到意图的文档化/标准化方式.
持续的研究似乎表明它将Campyre(Campfire客户)添加为“共享”选项.因此,如果您选择共享图像,那么从图库中,Campyre会显示为其中一个选项.
Google和the Android dev site是你的朋友.我花了大约2分钟来获取所有信息.只要输入回复和后续编辑就行了……
更详细说明:
以下是AndroidManifest.xml的相关部分:
<activity android:name=".ShareImage" android:theme="@android:style/Theme.Dialog" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="image/*" /> </intent-filter> </activity>
这表示活动可以处理共享的Intent,其中共享的项目是图像.