“android.intent.extra.STREAM”

前端之家收集整理的这篇文章主要介绍了“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相关文章