Tôi nghĩ rằng các vấn đề thực sự ở đây là bạn đang chạy trên trình mô phỏng chính thức và ý định của bạn không phù hợp với bất kỳ thứ gì.
Từ thử nghiệm của tôi, đây là sự cố xảy ra khi URI của mục đích (từ setData()
) không khớp với bất kỳ thứ gì và bạn đang chạy trên một trong những trình giả lập Android chính thức. Điều này dường như không xảy ra trên các thiết bị thực, vì vậy nó không phải là một vấn đề thực tế.
Bạn có thể sử dụng mã này để phát hiện khi điều này sẽ xảy ra trước khi bạn khởi động mục đích:
ComponentName emailApp = intent.resolveActivity(getPackageManager());
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback");
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction);
(. Tên của hoạt động cho thấy phương pháp "không được hỗ trợ hành động" hành động là com.android.fallback.FallbackActivity
)
Cảm ơn, đã làm việc :) Tôi đã thử một cái gì đó như thế ban đầu nhưng nó chỉ kéo lên một số màn hình nhắn tin và không phải là ứng dụng email. Tôi nghĩ rằng đó là bởi vì, vào thời điểm đó, tôi không có một tài khoản email được thiết lập trong trình mô phỏng? – scuba
Bạn đã sử dụng từ khóa cuối cùng nào? Điều đó có dẫn đến một số loại tối ưu hóa mà tôi không biết? – Scott
Tôi không viết đoạn mã. Cá nhân, tôi có lẽ sẽ không sử dụng từ khóa cuối cùng ở đó. – CommonsWare