こんにちは、アプリケーションから MMS を送信したいと考えています。そのためのコードは次のとおりです。
void sendMMS()
{
try
{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Drawable drawable = imageView.getDrawable();
Bitmap bitmapPicked = ((BitmapDrawable) drawable).getBitmap();
bitmapPicked.compress(CompressFormat.JPEG, 75, bos);
byte[] image = bos.toByteArray();
File file = new File(Environment.getExternalStorageDirectory() + File.separator + "test.jpg");
file.createNewFile();
// write the bytes in file
FileOutputStream fo = new FileOutputStream(file);
fo.write(image);
Log.i(TAG, "image = " + image);
Intent intentEmail = new Intent(Intent.ACTION_SEND);
intentEmail.setType("text/plain");
String[] recipients = new String[] { "" };
intentEmail.putExtra(Intent.EXTRA_EMAIL, recipients);
intentEmail.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
intentEmail.putExtra(Intent.EXTRA_TEXT, "body of email");
intentEmail.putExtra("sms_body", "body of sms");
intentEmail.setType("image/jpeg");
intentEmail.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath()));
startActivity(intentEmail);
} catch (android.content.ActivityNotFoundException ex)
{
Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
ex.printStackTrace();
} catch (Exception e)
{
e.printStackTrace();
}
}
ユーザーがボタンをクリックすると、このメソッドが呼び出され、このアクションを実行するために使用可能なオプションのリストが表示されます。したがって、MMS ユーザーを送信するには、「メッセージング」オプションを選択する必要があります。これは Android バージョン 2.3 では問題なく動作しますが、バージョン 4.0.3 でアプリを実行すると、使用可能なオプションのリストに「メッセージング」オプションが表示されません。これは MMS を送信するために必要です。
そして、行を削除すると
intentEmail.setType("image/jpeg");
intentEmail.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath()));
次に、リストに「メッセージング」オプションが表示されますが、削除できません。
何が問題なのか本当にわからないか、バージョン 4.0.3 に何かを追加する必要があるかもしれません。
助けてください。