com.google.android.mms.pdu_alt.GenericPdu

Here are the examples of the java api class com.google.android.mms.pdu_alt.GenericPdu taken from open source projects.

1. SlideshowModel#getPduBody()

Project: qksms
File: SlideshowModel.java
public static PduBody getPduBody(Context context, Uri msg) throws MmsException {
    PduPersister p = PduPersister.getPduPersister(context);
    GenericPdu pdu = p.load(msg);
    int msgType = pdu.getMessageType();
    if ((msgType == PduHeaders.MESSAGE_TYPE_SEND_REQ) || (msgType == PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF)) {
        return ((MultimediaMessagePdu) pdu).getBody();
    } else {
        throw new MmsException();
    }
}

2. MmsMessageSender#sendMessage()

Project: qksms
File: MmsMessageSender.java
public boolean sendMessage(long token) throws Throwable {
    // Load the MMS from the message uri
    PduPersister p = PduPersister.getPduPersister(mContext);
    GenericPdu pdu = p.load(mMessageUri);
    if (pdu.getMessageType() != PduHeaders.MESSAGE_TYPE_SEND_REQ) {
        throw new MmsException("Invalid message: " + pdu.getMessageType());
    }
    SendReq sendReq = (SendReq) pdu;
    // Update headers.
    updatePreferencesHeaders(sendReq);
    // MessageClass.
    sendReq.setMessageClass(DEFAULT_MESSAGE_CLASS.getBytes());
    // Update the 'date' field of the message before sending it.
    sendReq.setDate(System.currentTimeMillis() / 1000L);
    sendReq.setMessageSize(mMessageSize);
    p.updateHeaders(mMessageUri, sendReq);
    long messageId = ContentUris.parseId(mMessageUri);
    // Move the message into MMS Outbox.
    if (!mMessageUri.toString().startsWith(Uri.parse("content://mms/drafts").toString())) {
        try {
            // If the message is already in the outbox (most likely because we created a "primed"
            // message in the outbox when the user hit send), then we have to manually put an
            // entry in the pending_msgs table which is where TransacationService looks for
            // messages to send. Normally, the entry in pending_msgs is created by the trigger:
            // insert_mms_pending_on_update, when a message is moved from drafts to the outbox.
            ContentValues values = new ContentValues(7);
            values.put(Telephony.MmsSms.PendingMessages.PROTO_TYPE, 1);
            values.put(Telephony.MmsSms.PendingMessages.MSG_ID, messageId);
            values.put(Telephony.MmsSms.PendingMessages.MSG_TYPE, pdu.getMessageType());
            values.put(Telephony.MmsSms.PendingMessages.ERROR_TYPE, 0);
            values.put(Telephony.MmsSms.PendingMessages.ERROR_CODE, 0);
            values.put(Telephony.MmsSms.PendingMessages.RETRY_INDEX, 0);
            values.put(Telephony.MmsSms.PendingMessages.DUE_TIME, 0);
            SqliteWrapper.insert(mContext, mContext.getContentResolver(), Telephony.MmsSms.PendingMessages.CONTENT_URI, values);
        } catch (Throwable e) {
            p.move(mMessageUri, Telephony.Mms.Outbox.CONTENT_URI);
        }
    } else {
        p.move(mMessageUri, Telephony.Mms.Outbox.CONTENT_URI);
    }
    // Start MMS transaction service
    try {
        SendingProgressTokenManager.put(messageId, token);
        Intent service = new Intent(TransactionService.HANDLE_PENDING_TRANSACTIONS_ACTION, null, mContext, TransactionService.class);
        mContext.startService(service);
    } catch (Exception e) {
        throw new Exception("transaction service not registered in manifest");
    }
    return true;
}