Android shareactionprovider:如何知道哪个应用程序正在共享内容?

Android shareactionprovider:如何知道哪个应用程序正在共享内容?,android,actionbarsherlock,Android,Actionbarsherlock,大家好,我想这个问题是不言而喻的。问题是我想在不同的应用程序上共享不同的内容。 我正在使用下面的代码共享内容,效果很好。但所有应用程序上的共享内容都是相同的。但我尝试搜索了一下谷歌,似乎没有关于如何在不同应用程序上共享不同内容的文章? 我不认为代码是必要的,但如果有人需要,就在这里 public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.item_display

大家好,我想这个问题是不言而喻的。问题是我想在不同的应用程序上共享不同的内容。 我正在使用下面的代码共享内容,效果很好。但所有应用程序上的共享内容都是相同的。但我尝试搜索了一下谷歌,似乎没有关于如何在不同应用程序上共享不同内容的文章? 我不认为代码是必要的,但如果有人需要,就在这里

public boolean onCreateOptionsMenu(Menu menu) {
        getSupportMenuInflater().inflate(R.menu.item_display_menu, menu);
        getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ab_solid_reggys));
        mShareActionProvider = (ShareActionProvider) menu.findItem(
                R.id.shareButton).getActionProvider();
        Intent intent = getDefaultShareIntent();
        if (intent != null)
            mShareActionProvider.setShareIntent(intent);
        return super.onCreateOptionsMenu(menu);

    }

您需要使用两个不同的意图来共享不同的内容(以及两个不同的用户可单击按钮)。这是因为
mShareActionProvider.setShareIntent(intent)只接受一个
意图

一般来说,这是正确的行为,因为您正在执行“共享文本”或“共享图像”之类的操作,如果您需要检测您共享给哪个应用程序,则不再通用

@Override
    public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
       shareTarget = intent.getComponent().getPackageName();
      Log.w("myApp", shareTarget);
      return false;

    }

这很有效…

是的,我知道我需要两种不同的意图,但我如何知道单击了哪个按钮?我的意思是,如果有人在fb或谷歌上共享,我如何知道???如果可以,请在这里帮助我..你不能从ShareActionProvider知道这一点,要提供独特的内容,您需要fb/google+/twitter的单独按钮。不,不需要<代码>注意:不允许修改意图,对后者的任何更改都将被忽略。注意:您不应该在这里处理意图。此回调旨在通知客户端正在执行共享,以便客户端可以在必要时更新UI