2010-07-20 113 views
6

我有一個代碼,會提示用戶通過選擇所需的應用程序來發送消息,我如何檢測用戶是否實際上已經從選項中選擇或者按下了回來?如何檢測用戶是否從createChooser選項中選擇?

我試圖檢查意圖是否返回了某些內容,但運行異步,因此無法跟蹤。

此外,我試圖運行與startActivityForResult意圖,我注意到onActivityResult resultCode總是0(RESULT_CANCELED),即使用戶選擇,或不從選擇器。

回答

3

從Android的來源,你可以看到Intent中選擇的Activity並不是setResult()。這應該被要求作爲一個功能。

+1

反正是有知道他們已經選擇哪些應用? – MinceMan 2013-05-31 13:11:15

0

您現在可以使用帶有第3個參數:pendingintent.getintentsender()的新的createChooser()。

例如:

 String aText = e.getText().toString(); 
     Intent sendIntent = new Intent(); 
     sendIntent.setAction(Intent.ACTION_SEND); 
     sendIntent.putExtra(Intent.EXTRA_TEXT, aText); 
     sendIntent.setType("text/plain"); 
     sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     sendIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 

     // 
     Intent receiver = new Intent(this, BroadcastTest.class); 
     receiver.putExtra("test", "test"); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); 
     Intent intent = Intent.createChooser(sendIntent, "Send email with:", pendingIntent.getIntentSender()); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
相關問題