如何在J2ME程序里发送和接收MMS

Wireless Messaging API (JSR-120 or WMA) 允许访问J2ME设备上的无线通讯资源来发送文本、二进制和MultiPart消息,MMS 属于MultiPart消息.

下边的例子代码说明了如何在J2ME程序里发送和接收MMS

public void sendMMS()
{
  String appID = getAppProperty("MMS-ApplicationID");
  String address = "mms://+5550000:" + appID;

  MessageConnection mmsconn = null;

  try
  {
    /** 打开连接 */
    mmsconn = (MessageConnection) Connector.open(address);

    MultipartMessage mmmessage =(MultipartMessage) mmsconn.newMessage(
      MessageConnection.MULTIPART_MESSAGE);
    mmmessage.setAddress(address);

    MessagePart[] parts = getParts();

    for (int i = 0; i < parts.length; i++)
    {
      mmmessage.addMessagePart(parts[i]);
    }

    mmmessage.setSubject("MMS Text");
    mmsconn.send(mmmessage);
  }
  catch (Exception e) {
  }

  if (mmsconn != null)
  {
    try
    {
      mmsconn.close();
    }
    catch (IOException ioe) {
    }
  }
}

public MessagePart[] getParts()
{
  // parts 是一个Vector对象,它包括Mulitpart 消息
  MessagePart[] partsArray = new MessagePart[parts.size()];
  parts.copyInto(partsArray);
  return partsArray;
}

public void addPart()

  Vector parts = new Vector();
  int counter = 0;
  MessagePart mpart;
 
  /*这里添加文本*/
  String mimeType = "text/plain";
  String encoding = "UTF-8";
  String text = "Hello";
  byte[] contents = text.getBytes(encoding);
  mpart = new MessagePart(contents, 0, contents.length, mimeType, "id" +
    counter, "contentLocation", encoding);

  counter ++;

  /*这里添加图像*/
  String mimeType = "image/png";
  String image = "/hello.png";
  InputStream is = getClass().getResourceAsStream(image);
  byte[] contents = new byte[is.available()];
  is.read(contents);
  mpart = new MessagePart(contents, 0, contents.length,mimeType, "id" +
    counter,"contentLocation", null);
  parts.addElement(mpart);
  counter ++;
}

public void run()
{
  String mmsConnection = "mms://:" + appID;
  try
  {
    mmsconn = (MessageConnection) Connector.open(mmsConnection);
    mmsconn.setMessageListener(this);
  }
  catch (IOException ioe) {
  }
  try
  {
    Message msg = mmsconn.receive();
    if (msg != null)
    {
      String senderAddress = msg.getAddress();
      String title = senderAddress.substring(6);
      if (msg instanceof MultipartMessage)
      {
        MultipartMessage mpm = (MultipartMessage)msg;
        String subject = mpm.getSubject();
        String date = mpm.getTimestamp().toString();
        MessagePart[] parts = mpm.getMessageParts();
        if (parts != null)
        {
          for (int i = 0; i < parts.length; i++)
          {
            MessagePart mp = parts[i];
            String mimeType = mp.getMIMEType();
            String contentLocation = mp.getContentLocation();
            byte[] ba = mp.getContent();
            try
            {
              Image image = Image.createImage(ba, 0, ba.length);
            }
            catch (IllegalArgumentException iae)
            {}
          }
        }
      }
    }
  }
  catch (IOException e) {
  }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值