2014-10-01 92 views
0

我想通過我的應用程序通過whatsapp發送短信。通過whatsapp分享

我不知道誰是我的收件人是當我發送請求通過whatsapp分享我被引導到聯繫人頁面。

如何知道選擇了哪個聯繫人?

這是我使用的共享代碼:

public void clickHandler(View view) { 

PackageManager pm=getPackageManager(); 
try { 

    Intent waIntent = new Intent(Intent.ACTION_SEND); 
    waIntent.setType("text/plain"); 
    String text = "YOUR TEXT HERE"; 

    PackageInfo info=pm.getPackageInfo("com.whatsapp",PackageManager.GET_META_DATA); 
    //Check if package exists or not. If not then code 
    //in catch block will be called 
    waIntent.setPackage("com.whatsapp"); 

     waIntent.putExtra(Intent.EXTRA_TEXT, text); 
     startActivityForResult(Intent.createChooser(waIntent, "Share with"),1); 

    } catch (NameNotFoundException e) { 
     Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT) 
       .show(); 
    } 

}

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    Log.d("whatsapp","requestCode:"+requestCode + " resultCode:"+resultCode+ " intent:"+data); 
} 

10-01 16:57:46.910: D/whatsapp(13522): requestCode:1 resultCode:0 intent:null 
+0

爲什麼你想知道哪個聯繫人被選中?該應用程序會自動發送消息到該聯繫人,這是你想要的,我猜。 – 2014-10-01 14:07:30

+0

我想通過whatsapp與另一個用戶分享信息,這個用戶可能不是我的應用用戶,如果是這樣的話,我希望當這個用戶註冊我的應用時,能夠給他的內容已被共享。併爲此我需要標記此用戶 – 2014-10-01 14:11:03

+0

如果您的onActivityResult不觸發,那麼沒有辦法檢索這個,因爲whatsApp沒有編碼。 – 2014-10-01 14:13:17

回答

2

你想達到什麼樣的東西,你要共享到(WhatsApp的具體應用程式情況)必須在他們的應用中編碼,如果他們沒有實現這個功能,你將無法實現它。 Android上的每個單獨的startActivityForResult都是如此。如果應用程序未編碼以返回數據,則表示您無法獲得該數據。

要檢查是否有任何應用程序實現,最好的辦法是調查它返回的對象的內容。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

把一個破發點在你的代碼在上面的線和調試會話檢查data參數的內容。檢查由getExtras()返回的Bundle內的所有鍵和值,並檢查意圖操作是什麼。

當你對你的提問時指出

d/WhatsApp的(13522):requestCode:1 resultCode爲:0目的:空

這意味着沒有數據是通過什麼程序,什麼返回你想要的是不可能的。