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
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
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; }