【问题标题】:Receive specific content via Share Intent in Android通过 Android 中的 Share Intent 接收特定内容
【发布时间】:2013-02-26 16:15:45
【问题描述】:

作为我正在尝试做的一个示例:当我将一篇文章从 Pocket 分享到 Evernote 时,Pocket 会格式化文本并将整篇文章发送到 Evernote,而当我与我的应用程序分享一篇文章时,我只会收到 URL .我知道在 Pocket 这边有代码正在执行,因为在共享之前有一个“处理”对话框。

我的问题:Pocket 是否知道它正在与 Evernote 共享并专门为 Evernote 格式化其输出,或者 Evernote 是否以某种方式注册为文本编辑应用程序并因此提示 Pocket 共享整篇文章而不仅仅是一个 URL?

如果是后者,它是怎么做的?我应该注册我的应用程序以接收text/plain 以外的 mime 类型吗?这是我目前用来接收文本的部分代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    rcvIntent = getIntent();
    String rcvAction = rcvIntent.getAction();
    String rcvType = rcvIntent.getType();
    if (Intent.ACTION_SEND.equals(rcvAction) && "text/plain".equals(rcvType))
        displaySentText(rcvIntent);
}
private void displaySentText (Intent rcvIntent) {
    String sharedText = rcvIntent.getStringExtra(Intent.EXTRA_TEXT);
    if (sharedText == null) return;
    if (sharedText.startsWith("http://")) {
        ConnectivityManager connMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        if (networkInfo != null && networkInfo.isConnected()) {
            new DownloadWebpageText().execute(sharedText);

提前致谢!

编辑:

调试器没有提供太多信息。当我分享到 Evernote 时,它​​显示:

02-27 16:36:50.005: I/ActivityManager(2257): START u0 {act=android.intent.action.SEND typ=text/plain flg=0x80001 cmp=com.evernote/.note.composer.NewNoteAloneActivity (has clip) (has extras)} from pid 31094

当我分享到我的应用时,我收到了一条非常相似的消息:

02-27 16:37:39.700: I/ActivityManager(2257): START u0 {act=android.intent.action.SEND typ=text/plain flg=0x80001 cmp=st.olm.readmemberalpha/.WebText (has clip) (has extras)} from pid 31094

它们都是text/plain,但内容不同。我还检查了上面(has clip)的剪辑内容,但内容与extra相同。

【问题讨论】:

    标签: android text android-intent share mime-types


    【解决方案1】:

    在阅读了袖珍博客之后,似乎袖珍实际上确实为 Evernote 专门格式化了文章文本。分享intent 剪辑来自ClipData class,只是额外内容的复制品,自 api 11 起使用。

    似乎没有办法——至少通过共享意图,据我所知——强制另一个应用提供特定数据(类型)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 2015-03-30
      • 1970-01-01
      • 2022-01-09
      • 2014-03-19
      • 2014-03-13
      相关资源
      最近更新 更多