2016-06-16 44 views
0

我正在尝试引用并在我的应用中获得活动
因此,我想永久显示一些应用程序,例如whatsapp等,供用户点击并直接共享。
我使用Intent来共享推荐代码,但当用户点击共享时,它会弹出应用程序列表。
我使用的是代码,
如何使应用程序选择器在Android中共享文本永久?

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_TEXT, "This is a message"); 
intent.setType("text/plain"); 
startActivity(Intent.createChooser(intent, "Share via")); 


我怎样才能使应用程序选择器永久几个应用程序?

+0

使用'shareActionProvider'用于这一目的。[链接](https://developer.android.com/training/sharing/shareaction.html) –

回答

0

应用选择器不打算永久显示。因此,您必须创建简单的按钮或图标,并通过设置意图的包来创建引用所需应用程序的意图。

E.g.与WhatsApp的使用某事像这样分享某事:

Intent sendIntent = new Intent(); 
// here comes the magic 
sendIntent.setPackage("com.whatsapp"); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
sendIntent.setType("text/plain"); 
startActivity(sendIntent); 

根据您想要分享的内容的类型,你想分享的应用程序,是有意义的重用代码来创建意图和刚刚成立相应的软件包以及最终的一些附加参数。

+0

但是,如果用户没有在的WhatsApp她的设备,我该如何处理? –

+0

检查这个线程:http://stackoverflow.com/questions/11392183/how-to-check-programmatically-if-an-application-is-installed-or-not-in-android#11392276 –

+0

你必须检查该软件包来自packageManager即 http://stackoverflow.com/questions/6711295/how-to-check-if-facebook-is-installed-android –

0

您将需要应用程序的包名称和一个意图。

  1. 变化ACTION_VIEW到ACTION_SENDTO
  2. 设置开放的,你没设置
  3. 包WhatsApp的

    Intent i = new Intent(Intent.ACTION_SENDTO, 
    Uri.parse("content://com.android.contacts/data/" + c.getString(0))); 
    i.setType("text/plain"); 
    i.setPackage("com.whatsapp");   // so that only Whatsapp reacts and not the chooser 
    i.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
    i.putExtra(Intent.EXTRA_TEXT, "I'm the body."); 
    startActivity(i); 
    

您可以参考以下链接了解:

  1. Send text to specific contact (whatsapp)
  2. Sending message through WhatsApp
相关问题