2012-04-22 25 views
11

Tôi đang cố gắng bắt đầu nhà cung cấp sms thiết lập điện thoại bằng cách bắt đầu một ý định. Mã tôi đang sử dụng bên dưới là những gì tôi đang sử dụng để bắt đầu ý định.Android: Mở hoạt động SMS với nhiều người nhận được chỉ định

Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
    StringBuilder uri = new StringBuilder("sms:"); 
    for (int i = 0; i < contacts.size(); i++) { 
     uri.append(contacts.get(i).getNumber()); 
     uri.append(", "); 
    } 
    sendIntent.putExtra("sms_body", ""); 
    sendIntent.setType("vnd.android-dir/mms-sms"); 
    sendIntent.setData(Uri.parse(uri.toString())); 
    startActivity(sendIntent); 

Tôi đặc biệt muốn sử dụng phương pháp này thay vì gửi tin nhắn cho chính mình để người dùng có thể sử dụng ứng dụng khách sms ưa thích của họ. Tôi có thể làm cho nó đi với chỉ một số nhưng không nhiều. Tôi không thể tìm thấy một ví dụ ở bất kỳ đâu với nhiều người nhận. Điều này có thể không?

Cảm ơn bạn trước

Trả lời

18
Intent smsIntent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:5551212;5551212")); 
smsIntent.putExtra("sms_body", "sms message goes here"); 
startActivity(smsIntent); 

Thêm một dấu chấm phẩy phân định danh sách các số điện thoại để "smsto:" như URI trong constructor Intent. Cũng tham khảo này LINK

+0

Cảm ơn đã làm việc sai phân cách – georgephillips

+0

nó không hoạt động cho tôi mở ứng dụng sms chỉ hiển thị một người nhận ?? –

6

Tôi đã thử cách tiếp cận của bạn với ít sửa đổi và hoạt động của nó phù hợp với tôi.Đây là mã được sửa đổi.

StringBuilder uri = new StringBuilder("sms:"); 
    for (int i = 0; i < yourarray.length; i++) { 
     uri.append(yourarray[i]); 
     uri.append(", "); 
    } 
    Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
    smsIntent.setType("vnd.android-dir/mms-sms"); 
    smsIntent.setData(Uri.parse(uri.toString())); 
    smsIntent.putExtra("sms_body", "Body of Message"); 
    startActivity(smsIntent); 
Các vấn đề liên quan