2010-06-02 27 views
24

Mã này hoạt động trên các thiết bị google đơn giản có hệ thống android gốc. Nhưng không có ứng dụng MMS trong danh sách trên các thiết bị cảm giác htc và tôi không biết về Motorola Blur v.v .:Android: Có cách nào phổ biến để gửi MMS trên mọi thiết bị Android không?

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.setType("image/png"); 
    emailIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    context.startActivity(Intent.createChooser(emailIntent, context.getString(R.string.send_intent_name))); 

Mã này hoạt động trên tinh thần htc nhưng không phải từ Chooser, những gì tôi thực sự cần:

Intent sendIntent = new Intent("android.intent.action.SEND_MSG"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    sendIntent.setType("image/png"); 
    context.startActivity(sendIntent); 

Nhưng tôi không biết cách kết hợp các mẫu mã này với nhau và tôi không biết cách xác định Htc Sense ui theo cách lập trình. Có đúng cách để hỗ trợ các loại thiết bị khác nhau không?

Cảm ơn bạn đã trả lời.

+3

Bạn đã thấy [câu hỏi này] [1] ? Nó có một số mã mẫu. [1]: http://stackoverflow.com/questions/2972845/i-want-send-image-through-using-mms-in-android/2973016#2973016 – EboMike

+0

@EboMike Tôi thấy bạn là người tạo ra EboBirthday Cảm ơn! đó là một chương trình tuyệt vời, đã sử dụng nó kể từ lần đầu tiên xuất hiện. – JPM

+0

@JPM Tôi, cảm ơn JPM :) – EboMike

Trả lời

1

Cảm giác, đặc biệt là các phiên bản cũ là một cơn đau. Có kiểm soát webview cũng có một loạt các vấn đề. Tùy thuộc vào khối lượng tin nhắn bạn có thể thử sử dụng dịch vụ web như dịch vụ thông báo đơn giản của amazon để gửi tin nhắn sms: http://aws.typepad.com/aws/2011/11/amazon-simple-notification-service-now-supports-sms.html Đó không phải là giải pháp Android, nhưng nó có thể hoạt động.

1

Bạn có thể phát hiện xem có một trả lời cho HTC Ý định, và sau đó chi nhánh:

intent = new Intent("android.intent.action.SEND_MSG"); 
intent.putExtra(Intent.EXTRA_STREAM, uri); 
intent.setType("image/png"); 

resolves = getActivity().getPackageManager().queryIntentActivities(intent, 
     PackageManager.MATCH_DEFAULT_ONLY); 

if (resolves.size() > 0) { 
    // This branch is followed only for HTC 
    context.startActivity(intent); 
} else { 
    // Else launch the non-HTC sense Intent 
    intent = new Intent(android.content.Intent.ACTION_SEND); 
    intent.setType("image/png"); 
    intent.putExtra(Intent.EXTRA_STREAM, uri); 
    context.startActivity(Intent.createChooser(intent, 
      context.getString(R.string.send_intent_name)));  
} 
+0

Tôi đang làm điều gì đó tương tự TẠI ĐÂY !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

1

Bạn có thể sử dụng nó như thế này:

Intent i = new Intent(Intent.ACTION_SEND); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.putExtra(Intent.EXTRA_EMAIL, new String[]{""}); 
i.setType("video/3gp"); 
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + attachmentFilePath)); 
startActivity(i); 
Các vấn đề liên quan