2010-07-20 30 views
6

Tôi có một mã sẽ nhắc người dùng gửi tin nhắn bằng cách chọn ứng dụng mong muốn, làm thế nào tôi có thể phát hiện nếu người dùng thực sự đã chọn từ các tùy chọn hoặc thay vào đó nhấn Quay lại?Làm cách nào để tôi có thể phát hiện xem người dùng đã chọn từ tùy chọn createChooser?

Tôi đã cố gắng kiểm tra xem ý định đã trả về cái gì đó chưa, nhưng đang chạy không đồng bộ vì vậy không thể theo dõi được.

Ngoài ra tôi đã cố gắng chạy mục đích với startActivityForResult, những gì tôi nhận thấy trong onActivityResult rằng resultCode luôn là 0 (RESULT_CANCELED) ngay cả khi người dùng đã chọn hoặc không chọn từ trình chọn.

Trả lời

3

Từ nguồn của Android, bạn có thể thấy rằng Hoạt động chọn giữa các mục đích không đặtResult(). Đó nên được yêu cầu như một tính năng.

+1

Liệu có cách nào để biết được ứng dụng mà họ đã chọn? – MinceMan

0

bây giờ bạn có thể sử dụng trình tạo createChooser mới() với 3rd arg: pendingintent.getintentsender().

dụ:

 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); 
Các vấn đề liên quan