“android.intent.extra.STREAM”

在做一些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会显示为其中一个选项.

Googlethe 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,其中共享的项目是图像.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...