import java.io.IOException;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.media.ExifInterface;
import android.os.Bundle;
import android.provider.MediaStore;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//测试1
//getVideosInfo();
//测试2
//getPhotosInfo();
//测试3
getAudiosInfo();
} //获取设备上所有的视频信息
private void getVideosInfo() {
ContentResolver contentResolver=getContentResolver();
String [] videoColumns=new String[]{
MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.TITLE,
MediaStore.Video.Media.MIME_TYPE
};
// 两种方法均可
// Cursor cursor=
// this.managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
Cursor cursor=contentResolver.query
(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoColumns, null, null, null);
while (cursor.moveToNext()) {
String _id=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
String filePath=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
String title=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
String mime_type=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));
System.out.println("_id="+_id);
System.out.println("title="+title);
System.out.println("filePath="+filePath);
System.out.println("mime_type="+mime_type);
}
} //获取设备上所有的照片信息
private void getPhotosInfo() {
ContentResolver contentResolver=getContentResolver();
String [] photoColumns=new String[]{
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.TITLE,
MediaStore.Images.Media.MIME_TYPE,
MediaStore.Images.Media.SIZE,
MediaStore.Images.Media.ORIENTATION
};
// 两种方法均可
// Cursor cursor=
// this.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
Cursor cursor=contentResolver.query
(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, photoColumns, null, null, null);
while (cursor.moveToNext()) {
String _id=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID));
String filePath=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
String title=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.TITLE));
String mime_type=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.MIME_TYPE));
String size=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.SIZE));
//得到照片旋转角度方法一
String orientation0=cursor.getString
(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.ORIENTATION));
System.out.println("_id="+_id);
System.out.println("size="+size);
System.out.println("title="+title);
System.out.println("filePath="+filePath);
System.out.println("mime_type="+mime_type);
System.out.println("第一处 orientation0="+orientation0);
try {
ExifInterface exifInterface=new ExifInterface(filePath);
String image_length=
exifInterface.getAttribute(ExifInterface.TAG_IMAGE_LENGTH);
String image_width=
exifInterface.getAttribute(ExifInterface.TAG_IMAGE_WIDTH);
String orientation1=
exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION);
String dateTime=
exifInterface.getAttribute(ExifInterface.TAG_DATETIME);
System.out.println("image_length="+image_length);
System.out.println("image_width="+image_width);
System.out.println("dateTime="+dateTime);
//得到照片旋转角度方法二
//应该结合ExifInterface源码分析.
//此处有待于进一步分析和验证
switch (Integer.valueOf(orientation1)) {
case 1:
System.out.println("第二处旋转角度="+0);
break;
case 2:
//matrix.invert(matrix);
break;
case 3:
//matrix.setRotate(180);
System.out.println("第二处旋转角度="+180);
break;
case 4:
//matrix.invert(matrix);
//matrix.setRotate(180);
System.out.println("第二处旋转角度="+180);
break;
case 5:
//matrix.setRotate(90);
//matrix.invert(matrix);
System.out.println("第二处旋转角度="+90);
break;
case 6:
//matrix.setRotate(90);
System.out.println("第二处旋转角度="+90);
break;
case 7:
//matrix.invert(matrix);
//matrix.setRotate(90);
System.out.println("第二处旋转角度="+90);
break;
case 8:
//matrix.setRotate(270);
System.out.println("第二处旋转角度="+270);
break;
default:
break;
}
System.out.println("XXXXXXXXXXXXXXXXXXX");
} catch (IOException e) {
e.printStackTrace();
} } } //获取设备上所有的音频信息
private void getAudiosInfo() {
ContentResolver contentResolver=getContentResolver();
String [] audioColumns=new String[]{
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.MIME_TYPE
};
// 两种方法均可
// Cursor cursor=
// this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
Cursor cursor=contentResolver.query
(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, audioColumns, null, null, null);
while (cursor.moveToNext()) {
String _id=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
String filePath=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
String title=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String mime_type=
cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE));
System.out.println("_id="+_id);
System.out.println("title="+title);
System.out.println("filePath="+filePath);
System.out.println("mime_type="+mime_type); } } }

移动开发:Android中MediaStore使用示例

												

Android 流媒体系列(二)的更多相关文章

  1. ANDROID Porting系列二、配置一个新产品

    ANDROID Porting系列二.配置一个新产品 详细说明 下面的步骤描述了如何配置新的移动设备和产品的makefile运行android. 1.         目录//vendor/创建一个公 ...

  2. Android画图系列(二)——自己定义View绘制基本图形

    这个系列主要是介绍下Android自己定义View和Android画图机制.自己能力有限.假设在介绍过程中有什么错误.欢迎指正 前言 在上一篇Android画图系列(一)--自己定义View基础中我们 ...

  3. Android学习系列(二)布局管理器之线性布局的3种实现方式

    转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669 LinearLayout是Android控件中的线性布局控件,它包括的子控件 ...

  4. Android 流媒体系列(一)

    Android   设置铃声分析 代码其实没有几行,这里简单记录下学习的过程. Android系统启动时会扫描系统与SD卡中的对媒体文件,分别存入数据库sqlite中,以contentProvider ...

  5. Android自定义控件系列(二)—icon+文字的多种效果实现

    转载请注明出处:http://www.cnblogs.com/landptf/p/6290810.html 今天给大家带来一个很简单但是很常用的控件ButtonExtendM,在开发中我们经常会用到图 ...

  6. Android Studio系列教程二--基本设置与运行

    Android Studio系列教程二--基本设置与运行 2014 年 11 月 28 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处! 上面一篇博客,介绍了Studio的 ...

  7. Android Camera系列开发 (二)通过Intent录制视频

    Android Camera系列开发 (二)通过Intent录制视频 作者:雨水  2013-8-18 CSDN博客:http://blog.csdn.net/gobitan/ 概述 使用Camera ...

  8. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  9. Android流媒体开发之路二:NDK开发Android端RTMP直播推流程序

    NDK开发Android端RTMP直播推流程序 经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行 ...

随机推荐

  1. 利用汇编查看C++函数调用

    这篇文章的内容是一个老生常谈的问题----> 函数是如何被调用的. 本文用汇编代码研究函数调用的过程,参数调用的方式,函数值的返回. 1. 函数是如何实现调用的 函数的调用是用call 和 re ...

  2. 浅谈C中的指针和数组(七)

    现在到揭露数组名本质的时候了,先给出三个结论: (1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组: (2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量: ( ...

  3. jsp获取枚举的值

    Struts2的Action传回页面一个list,页面迭代这个list,获取下拉框的值,获取过来是枚举类型. 在jsp页面获取枚举的常量值和枚举的值的例子如下: jsp页面: <td >状 ...

  4. PowerShell入门(一):PowerShell能干什么?

    原文链接:http://www.cnblogs.com/ceachy/archive/2013/01/30/WhatCanPowerShellDo.html PowerShell能干什么呢?就像序言中 ...

  5. 走进C标准库(3)——"stdio.h"中的getc和ungetc

    接前文. 再来看看getc和ungetc的实现.在看这两个函数的实现之前,我们先来想一想这两个函数分别需要做的工作. int getc(FILE *stream) 说明:函数getc从stream指向 ...

  6. Oracle EBS-SQL (AR-2):检查应收收款核销额

    SELECT cust.customer_number, cust.customer_name, cash.receipt_number,            gcc.segment1 || '.' ...

  7. 用OO方式写键盘字母小游戏

    <html>  <head>   <title>0.0</title>   <script>    window.onload=functi ...

  8. LA 5966 Blade and Sword (双向bfs + 想法) - from lanshui_Yang

    题目大意:给你一张有n * m个网格的图,每个网格可能是如下符号: “#”:墙 “P”:出发点 “D”:终点 “.”:空地 “*”:传送机 有一个旅行家(假设名叫Mike),他要从点P到达点D,途中必 ...

  9. sql server 2005中没有等于等于,高手自行跳过。。

    set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo ALTER TRIGGER [qiandaoTrigger] ON [dbo].[bbsQianDao] AFT ...

  10. HTML系列(四):编辑图像

    一.图像的基本概念 1.矢量图:文件占用空间小,放大后图像不会失真,和分辨率无关.适用于图形设计.文字设计.标志设计.版式设计等. 2.位图:由像素点组成,文件较大,放大和缩小图像会失真. 3.有损压 ...