2016-06-16 47 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
相關問題