3

我想在操作栏中有一个共享图标,按下后会出现一个选择器。我已经准备好了大部分内容,但是这个不受欢迎的中间人介入了...

菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_share"
          android:title="@string/share"
          android:showAsAction="always"
          android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"
    />    
</menu>

SherlockFragment 的 onCreateOptionsMenu:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    // Inflate menu resource file.
    inflater.inflate(R.menu.share_menu, menu);

    // Locate MenuItem with ShareActionProvider
    MenuItem item = menu.findItem(R.id.menu_share);

    // Fetch and store ShareActionProvider
    this.shareActionProvider = (ShareActionProvider) item.getActionProvider();

    final String title = r.getString(R.string.feedback_share);
    final String subject = r.getString(R.string.share_subject);
    final String message = r.getString(R.string.share_message_plain);

    Intent intent = app.newShareIntent(title, subject, message);
    this.shareActionProvider.setShareIntent(intent);
}

意向工厂:

public Intent newShareIntent(String title, String subject, String message) {            
    Intent intent = new Intent(android.content.Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    intent.putExtra(Intent.EXTRA_TEXT, message);

    Intent chooser = Intent.createChooser(intent, title);
    chooser.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    return chooser;
}

不受欢迎的中间人:

在此处输入图像描述

当我点击这个人时,他会按照指示进行操作并呈现选择器。但我真的对参与他的服务不感兴趣。

我所追求的:

在此处输入图像描述

或者在下拉列表中使用所有三个(或用户设备上的多个)......或者能够设置与共享图标内联显示的默认值:

在此处输入图像描述

4

1 回答 1

3

但我真的对参与他的服务不感兴趣。

但是您要求“他的服务”,因为您是打电话createChooser()并决定将其用作您的份额的人Intent

摆脱它,ACTION_SEND Intent直接返回你的,“Android系统”应该消失。

于 2013-07-26T21:23:51.740 回答