public static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException { PduPart part = new PduPart(); assertMediaSize(context, uri, MmsMediaConstraints.MAX_MESSAGE_SIZE); Cursor cursor = null; try { cursor = context .getContentResolver() .query(uri, new String[] {Audio.Media.MIME_TYPE}, null, null, null); if (cursor != null && cursor.moveToFirst()) part.setContentType(cursor.getString(0).getBytes()); else throw new IOException("Unable to query content type."); } finally { if (cursor != null) cursor.close(); } part.setDataUri(uri); part.setContentId((System.currentTimeMillis() + "").getBytes()); part.setName(("Audio" + System.currentTimeMillis()).getBytes()); return part; }
private static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException { PduPart part = new PduPart(); ContentResolver resolver = context.getContentResolver(); Cursor cursor = null; try { cursor = resolver.query(uri, new String[] {MediaStore.Video.Media.MIME_TYPE}, null, null, null); if (cursor != null && cursor.moveToFirst()) { Log.w("VideoSlide", "Setting mime type: " + cursor.getString(0)); part.setContentType(cursor.getString(0).getBytes()); } } finally { if (cursor != null) cursor.close(); } if (getMediaSize(context, uri) > MAX_MESSAGE_SIZE) throw new MediaTooLargeException("Video exceeds maximum message size."); part.setDataUri(uri); part.setContentId((System.currentTimeMillis() + "").getBytes()); part.setName(("Video" + System.currentTimeMillis()).getBytes()); return part; }
private static PduPart constructPartFromUri(Uri uri) throws IOException, BitmapDecodingException { PduPart part = new PduPart(); part.setDataUri(uri); part.setContentType(ContentType.IMAGE_JPEG.getBytes()); part.setContentId((System.currentTimeMillis() + "").getBytes()); part.setName(("Image" + System.currentTimeMillis()).getBytes()); return part; }
private void getPartValues(PduPart part, Cursor cursor) { part.setRowId(cursor.getLong(cursor.getColumnIndexOrThrow(ROW_ID))); part.setUniqueId(cursor.getLong(cursor.getColumnIndexOrThrow(UNIQUE_ID))); int charsetColumn = cursor.getColumnIndexOrThrow(CHARSET); if (!cursor.isNull(charsetColumn)) part.setCharset(cursor.getInt(charsetColumn)); int contentTypeColumn = cursor.getColumnIndexOrThrow(CONTENT_TYPE); if (!cursor.isNull(contentTypeColumn)) part.setContentType(Util.toIsoBytes(cursor.getString(contentTypeColumn))); int nameColumn = cursor.getColumnIndexOrThrow(NAME); if (!cursor.isNull(nameColumn)) part.setName(Util.toIsoBytes(cursor.getString(nameColumn))); int fileNameColumn = cursor.getColumnIndexOrThrow(FILENAME); if (!cursor.isNull(fileNameColumn)) part.setFilename(Util.toIsoBytes(cursor.getString(fileNameColumn))); int contentDispositionColumn = cursor.getColumnIndexOrThrow(CONTENT_DISPOSITION); if (!cursor.isNull(contentDispositionColumn)) part.setContentDisposition(Util.toIsoBytes(cursor.getString(contentDispositionColumn))); int contentIdColumn = cursor.getColumnIndexOrThrow(CONTENT_ID); if (!cursor.isNull(contentIdColumn)) part.setContentId(Util.toIsoBytes(cursor.getString(contentIdColumn))); int contentLocationColumn = cursor.getColumnIndexOrThrow(CONTENT_LOCATION); if (!cursor.isNull(contentLocationColumn)) part.setContentLocation(Util.toIsoBytes(cursor.getString(contentLocationColumn))); int encryptedColumn = cursor.getColumnIndexOrThrow(ENCRYPTED); if (!cursor.isNull(encryptedColumn)) part.setEncrypted(cursor.getInt(encryptedColumn) == 1); int pendingPushColumn = cursor.getColumnIndexOrThrow(PENDING_PUSH_ATTACHMENT); if (!cursor.isNull(pendingPushColumn)) part.setPendingPush(cursor.getInt(pendingPushColumn) == 1); int sizeColumn = cursor.getColumnIndexOrThrow(SIZE); if (!cursor.isNull(sizeColumn)) part.setDataSize(cursor.getLong(cursor.getColumnIndexOrThrow(SIZE))); }