2010-07-20 11 views
6

मेरे पास एक कोड है जो वांछित एप्लिकेशन का चयन करके उपयोगकर्ता को एक संदेश भेजने के लिए प्रेरित करेगा, मैं कैसे पता लगा सकता हूं कि उपयोगकर्ता ने वास्तव में विकल्पों से चुना है या फिर वापस दबाया है?अगर मैं CreateChooser विकल्पों से चुने गए उपयोगकर्ता को कैसे पहचान सकता हूं?

मैंने यह जांचने की कोशिश की कि क्या इरादा कुछ लौटा है, लेकिन असुरक्षित चल रहा है इसलिए ट्रैक नहीं किया जा सकता है।

इसके अलावा मैंने startActivityForResult के साथ इरादा चलाने की कोशिश की है, जो मैंने एक्टिविटी रिसेट में देखा है कि परिणाम कोड हमेशा 0 (RESULT_CANCELED) होता है, भले ही उपयोगकर्ता चुने गए हों, या चयनकर्ता से नहीं।

उत्तर

3

एंड्रॉइड के स्रोत से, आप देख सकते हैं कि इरादों के बीच चुनने वाली गतिविधि पूरी तरह से सेट नहीं होती है। एक सुविधा के रूप में अनुरोध किया जाना चाहिए।

+1

वहाँ वैसे भी पता करने के लिए जो आवेदन वे चुना था है? – MinceMan

0

अब आप तीसरे तर्क के साथ नए createChooser() का उपयोग कर सकते हैं: pendingintent.getintentsender()।

उदाहरण:

 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); 
संबंधित मुद्दे