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代码>