在我的Android应用程序中,我有4个按钮,用于 Facebook , Viber ,电报和 Whatsapp ,我想要根据每个按钮分享不同的内容。
例如,如果用户点击了viber按钮,我想用 ACTION_SEND 与viber共享内容。
我发现THIS解释了如何为facebook和twitter做这个,但似乎它正在调用该应用程序的特定类名,我不知道除了facebook之外我想要使用的应用程序是什么
答案 0 :(得分:2)
所有Android应用程序都有唯一ID,因此首先我们必须检查这些应用程序是否安装在用户的设备中,然后我们可以通过意图传递唯一ID进行共享。按照以下说明:
不同应用的唯一ID:
Telegram : org.telegram.messenger
Whatsapp : com.whatsapp
private void sendMessage(Context context,String message, String appIds)
{
final boolean isAppInstalled =isAppAvailable(context, appIds);
if (isAppInstalled)
{
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("text/plain");
myIntent.setPackage(appIds);
myIntent.putExtra(Intent.EXTRA_TEXT, message);
mUIActivity.startActivity(Intent.createChooser(myIntent, "Share with"));
}
else
{
Toast.makeText(context, "App not Installed", Toast.LENGTH_SHORT).show();
}
}
检查这些应用是否已安装,是否已安装,然后通过意图发送消息。
private boolean isAppAvailable(Context context, String appName)
{
PackageManager pm = context.getPackageManager();
try
{
pm.getPackageInfo(appName, PackageManager.GET_ACTIVITIES);
return true;
}
catch (NameNotFoundException e)
{
return false;
}
}
指示是否已安装指定的应用程序并可用作intent。这个 方法检查包管理器以查找可以响应指定应用程序的意图的已安装包。如果找不到合适的包,则此方法返回false。
with