Android 通过手机文件夹路径,得到 某张 照片 的 详细/详情/信息的获取

               

Main

import android.annotation.SuppressLint;import android.app.Activity;import android.content.pm.ActivityInfo;import android.database.Cursor;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.provider.MediaStore.Images;import android.provider.MediaStore.Images.Media;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.TextView;public class MainActivity extends Activity {  private static final String TGA=MainActivity.class.getSimpleName();  private TextView photobean_detail_tv; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);    photobean_detail_tv=(TextView) this.findViewById(R.id.photobean_detail_tv); } public void getPhotoDetails(View view) {  CameraPhotoBean photoBean= getPhotoBeanByPath_Name(null, "IMG_20161125_201708.jpg");  photobean_detail_tv.setText(photoBean.toString()); }  public void changeScreenOrientation(View view) {  /** 设置为横屏*/  if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  }else {   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  } }  /**  *    本次查询的就是针对 相机里面的图片进行搜查  * @param path =/storage/emulated/0/DCIM/Camera  默认值  * @param name =head.jpg      这个不能为空  *   * @param path_name  eg:=  /storage/emulated/0/DCIM/Camera/head.jpg  * @return  */ @SuppressLint({ "DefaultLocale", "InlinedApi" }) public CameraPhotoBean getPhotoBeanByPath_Name(String path,String name) {  if (TextUtils.isEmpty(name)) {   return null;  }  if (!TextUtils.isEmpty(path)) {   path=String.valueOf(path.toLowerCase().hashCode());  }else {   String cameraPath=Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera";      path=String.valueOf(cameraPath.toLowerCase().hashCode());//   path=CAMERA_IMAGE_BUCKET_ID;  }  //       需要获得项   String[] largeFileProjection = { MediaStore.Images.ImageColumns.DATA,    MediaStore.Images.ImageColumns.ORIENTATION,    MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,    MediaStore.Images.ImageColumns.BUCKET_ID,    MediaStore.Images.ImageColumns.DATE_TAKEN,    MediaStore.Images.ImageColumns.IS_PRIVATE,    MediaStore.Images.ImageColumns.LATITUDE,    MediaStore.Images.ImageColumns.LONGITUDE,    MediaStore.Images.ImageColumns.MINI_THUMB_MAGIC,    MediaStore.Images.ImageColumns.PICASA_ID,//    MediaStore.Images.ImageColumns._COUNT,//_count 这列不存在    MediaStore.Images.ImageColumns._ID,    MediaStore.Images.ImageColumns.DATE_ADDED,    MediaStore.Images.ImageColumns.DATE_MODIFIED,    MediaStore.Images.ImageColumns.DISPLAY_NAME,    MediaStore.Images.ImageColumns.HEIGHT,    MediaStore.Images.ImageColumns.MIME_TYPE,    MediaStore.Images.ImageColumns.SIZE,    MediaStore.Images.ImageColumns.TITLE,    MediaStore.Images.ImageColumns.WIDTH};//       需要获得项   String[] largeFileProjection2 = {     Media.DATA,    Media.ORIENTATION,    Media.BUCKET_DISPLAY_NAME,    Media.BUCKET_ID,    Media.DATE_TAKEN,    Media.IS_PRIVATE,    Media.LATITUDE,    Media.LONGITUDE,    Media.MINI_THUMB_MAGIC,    Media.PICASA_ID,//    Media._COUNT,//_count 这列不存在    Media._ID,    Media.DATE_ADDED,    Media.DATE_MODIFIED,    Media.DISPLAY_NAME,    Media.HEIGHT,    Media.MIME_TYPE,    Media.SIZE,    Media.TITLE,    Media.WIDTH};  // final String selection = MediaStore.Images.Media.BUCKET_ID + " = ? ";  // final String[] selectionArgs = { CAMERA_IMAGE_BUCKET_ID };//  执行的SQLite 语句   String selectionSQstr = MediaStore.Images.Media.BUCKET_ID+ " = ? and " +        MediaStore.Images.ImageColumns.DISPLAY_NAME + " =? ";   String[] selectionArgs = { path,name};//问号值      Cursor myCursor = BaseApplication      .getInstance()      .getApplicationContext()      .getContentResolver()      .query(Images.Media.EXTERNAL_CONTENT_URI, largeFileProjection,         selectionSQstr, selectionArgs, null);      Cursor myCursor2=BaseApplication      .getInstance()      .getApplicationContext()      .getContentResolver()      .query(Media.EXTERNAL_CONTENT_URI, null, null, null, null);       CameraPhotoBean mCameraInfo = null;  long timer;  int rotateXDegrees;  String data ;  String bucketDisplayName ;  String bucketID ;  String dateTaken ;  String isPrivate ;  String latitude ;  String miniThumbMagic ;  String picasaID ;//  String _count ;//_count 这列不存在  String _id ;  String dateAdded ;  String dateModified ;  String height ;  String mimeType ;  String size ;  String title ;  String width ;//  myCursor.moveToFirst(); 如要写这句话,会导致 少一条数据;//  myCursor2.moveToFirst();  System.out.println("myCursor.getCount = "+myCursor.getCount());  System.out.println("myCursor2.getCount = "+myCursor2.getCount());  int i=0;  while (myCursor.moveToNext()) {   data = myCursor.getString(myCursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));   File f = new File(data);   if (f.exists()) {    timer = f.lastModified();// 最后一次修改时间    rotateXDegrees   = myCursor.getInt(myCursor.getColumnIndexOrThrow(Media.ORIENTATION));    bucketDisplayName   = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.BUCKET_DISPLAY_NAME));    bucketID    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.BUCKET_ID));    dateTaken    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.DATE_TAKEN));    isPrivate     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.IS_PRIVATE));    latitude    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.LATITUDE));    miniThumbMagic   = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.MINI_THUMB_MAGIC));    picasaID    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.PICASA_ID));//    _count     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media._COUNT));//_count 这列不存在    _id      = myCursor.getString(myCursor.getColumnIndexOrThrow(Media._ID));    dateAdded    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.DATE_ADDED));    dateModified   = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.DATE_MODIFIED));    height     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.HEIGHT));    mimeType    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.MIME_TYPE));    size     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.SIZE));    title     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.TITLE));    width     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.WIDTH));//    mCameraInfo = new CameraPhotoBean(data, rotateXDegrees,timer);    mCameraInfo = new CameraPhotoBean(rotateXDegrees, data, timer,       bucketDisplayName, bucketID, dateTaken, isPrivate, latitude,      miniThumbMagic, picasaID, "_count 这列不存在", _id, dateAdded, dateModified,       height, mimeType, size, title, width);    Log.e(TGA+" i = "+i,"mCameraInfo.toString() = "+mCameraInfo.toString());    i++;       }  }  myCursor.close();  return mCameraInfo; }}



xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="wrap_content"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="${relativePackage}.${activityClass}" >    <ScrollView        android:layout_width="wrap_content"        android:layout_height="match_parent"        android:fillViewport="true" >        <LinearLayout            android:layout_width="wrap_content"            android:layout_height="match_parent"            android:orientation="vertical" >            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:onClick="changeScreenOrientation"                android:text="changeScreenOrientation" />            <Button                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:onClick="getPhotoDetails"                android:text="获取图片的信息" />            <TextView                android:id="@+id/photobean_detail_tv"                android:layout_width="1000dp"                android:layout_height="wrap_content" />        </LinearLayout>    </ScrollView></LinearLayout>


方法:  

/**  *    本次查询的就是针对 相机里面的图片进行搜查  * @param path =/storage/emulated/0/DCIM/Camera  默认值  * @param name =head.jpg      这个不能为空  *   * @param path_name  eg:=  /storage/emulated/0/DCIM/Camera/head.jpg  * @return  */ @SuppressLint({ "DefaultLocale", "InlinedApi" }) public CameraPhotoBean getPhotoBeanByPath_Name(String path,String name) {  if (TextUtils.isEmpty(name)) {   return null;  }  if (!TextUtils.isEmpty(path)) {   path=String.valueOf(path.toLowerCase().hashCode());  }else {   String cameraPath=Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera";      path=String.valueOf(cameraPath.toLowerCase().hashCode());//   path=CAMERA_IMAGE_BUCKET_ID;  }  //       需要获得项   String[] largeFileProjection = { MediaStore.Images.ImageColumns.DATA,    MediaStore.Images.ImageColumns.ORIENTATION,    MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,    MediaStore.Images.ImageColumns.BUCKET_ID,    MediaStore.Images.ImageColumns.DATE_TAKEN,    MediaStore.Images.ImageColumns.IS_PRIVATE,    MediaStore.Images.ImageColumns.LATITUDE,    MediaStore.Images.ImageColumns.LONGITUDE,    MediaStore.Images.ImageColumns.MINI_THUMB_MAGIC,    MediaStore.Images.ImageColumns.PICASA_ID,//    MediaStore.Images.ImageColumns._COUNT,//_count 这列不存在    MediaStore.Images.ImageColumns._ID,    MediaStore.Images.ImageColumns.DATE_ADDED,    MediaStore.Images.ImageColumns.DATE_MODIFIED,    MediaStore.Images.ImageColumns.DISPLAY_NAME,    MediaStore.Images.ImageColumns.HEIGHT,    MediaStore.Images.ImageColumns.MIME_TYPE,    MediaStore.Images.ImageColumns.SIZE,    MediaStore.Images.ImageColumns.TITLE,    MediaStore.Images.ImageColumns.WIDTH};//       需要获得项   String[] largeFileProjection2 = {     Media.DATA,    Media.ORIENTATION,    Media.BUCKET_DISPLAY_NAME,    Media.BUCKET_ID,    Media.DATE_TAKEN,    Media.IS_PRIVATE,    Media.LATITUDE,    Media.LONGITUDE,    Media.MINI_THUMB_MAGIC,    Media.PICASA_ID,//    Media._COUNT,//_count 这列不存在    Media._ID,    Media.DATE_ADDED,    Media.DATE_MODIFIED,    Media.DISPLAY_NAME,    Media.HEIGHT,    Media.MIME_TYPE,    Media.SIZE,    Media.TITLE,    Media.WIDTH};  // final String selection = MediaStore.Images.Media.BUCKET_ID + " = ? ";  // final String[] selectionArgs = { CAMERA_IMAGE_BUCKET_ID };//  执行的SQLite 语句   String selectionSQstr = MediaStore.Images.Media.BUCKET_ID+ " = ? and " +        MediaStore.Images.ImageColumns.DISPLAY_NAME + " =? ";   String[] selectionArgs = { path,name};//问号值      Cursor myCursor = BaseApplication      .getInstance()      .getApplicationContext()      .getContentResolver()      .query(Images.Media.EXTERNAL_CONTENT_URI, largeFileProjection,         selectionSQstr, selectionArgs, null);      Cursor myCursor2=BaseApplication      .getInstance()      .getApplicationContext()      .getContentResolver()      .query(Media.EXTERNAL_CONTENT_URI, null, null, null, null);       CameraPhotoBean mCameraInfo = null;  long timer;  int rotateXDegrees;  String data ;  String bucketDisplayName ;  String bucketID ;  String dateTaken ;  String isPrivate ;  String latitude ;  String miniThumbMagic ;  String picasaID ;//  String _count ;//_count 这列不存在  String _id ;  String dateAdded ;  String dateModified ;  String height ;  String mimeType ;  String size ;  String title ;  String width ;//  myCursor.moveToFirst(); 如要写这句话,会导致 少一条数据;//  myCursor2.moveToFirst();  System.out.println("myCursor.getCount = "+myCursor.getCount());  System.out.println("myCursor2.getCount = "+myCursor2.getCount());  int i=0;  while (myCursor.moveToNext()) {   data = myCursor.getString(myCursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));   File f = new File(data);   if (f.exists()) {    timer = f.lastModified();// 最后一次修改时间    rotateXDegrees   = myCursor.getInt(myCursor.getColumnIndexOrThrow(Media.ORIENTATION));    bucketDisplayName   = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.BUCKET_DISPLAY_NAME));    bucketID    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.BUCKET_ID));    dateTaken    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.DATE_TAKEN));    isPrivate     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.IS_PRIVATE));    latitude    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.LATITUDE));    miniThumbMagic   = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.MINI_THUMB_MAGIC));    picasaID    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.PICASA_ID));//    _count     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media._COUNT));//_count 这列不存在    _id      = myCursor.getString(myCursor.getColumnIndexOrThrow(Media._ID));    dateAdded    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.DATE_ADDED));    dateModified   = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.DATE_MODIFIED));    height     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.HEIGHT));    mimeType    = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.MIME_TYPE));    size     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.SIZE));    title     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.TITLE));    width     = myCursor.getString(myCursor.getColumnIndexOrThrow(Media.WIDTH));//    mCameraInfo = new CameraPhotoBean(data, rotateXDegrees,timer);    mCameraInfo = new CameraPhotoBean(rotateXDegrees, data, timer,       bucketDisplayName, bucketID, dateTaken, isPrivate, latitude,      miniThumbMagic, picasaID, "_count 这列不存在", _id, dateAdded, dateModified,       height, mimeType, size, title, width);    Log.e(TGA+" i = "+i,"mCameraInfo.toString() = "+mCameraInfo.toString());    i++;       }  }  myCursor.close();  return mCameraInfo; }







PhotoBean

public class CameraPhotoBean public CameraPhotoBean() { } public CameraPhotoBean(String cameraPath, int cameraAngle, long timer) {  this.cameraPath = cameraPath;  this.cameraAngle = cameraAngle;  this.timer = timer; } /** 图片角度*/ private int cameraAngle = 0/** 图片保存路径*/ private String cameraPath = ""/** 图片生成时间*/ private long timer = 0/** 图片保存路径*/ private String bucketDisplayName = ""/** 图片保存路径*/ private String bucketID = ""/** 图片保存路径*/ private String dateTaken = ""/** 图片保存路径*/ private String isPrivate = ""/** 图片保存路径*/ private String latitude = ""/** 图片保存路径*/ private String miniThumbMagic = ""/** 图片保存路径*/ private String picasaID = ""/** 图片保存路径*/ private String _count = ""/** 图片保存路径*/ private String _id = ""/** 图片保存路径*/ private String dateAdded = ""/** 图片保存路径*/ private String dateModified = ""/** 图片保存路径*/ private String height = ""/** 图片保存路径*/ private String mimeType = ""/** 图片保存路径*/ private String size = ""/** 图片保存路径*/ private String title = ""/** 图片保存路径*/ private String width = "";  public int getCameraAngle() {  return cameraAngle; } public void setCameraAngle(int cameraAngle) {  this.cameraAngle = cameraAngle; } public String getCameraPath() {  return cameraPath; } public void setCameraPath(String cameraPath) {  this.cameraPath = cameraPath; } public long getTimer() {  return timer; } public void setTimer(long timer) {  this.timer = timer; } public String getBucketDisplayName() {  return bucketDisplayName; } public void setBucketDisplayName(String bucketDisplayName) {  this.bucketDisplayName = bucketDisplayName; } public String getBucketID() {  return bucketID; } public void setBucketID(String bucketID) {  this.bucketID = bucketID; } public String getDateTaken() {  return dateTaken; } public void setDateTaken(String dateTaken) {  this.dateTaken = dateTaken; } public String getIsPrivate() {  return isPrivate; } public void setIsPrivate(String isPrivate) {  this.isPrivate = isPrivate; } public String getLatitude() {  return latitude; } public void setLatitude(String latitude) {  this.latitude = latitude; } public String getMiniThumbMagic() {  return miniThumbMagic; } public void setMiniThumbMagic(String miniThumbMagic) {  this.miniThumbMagic = miniThumbMagic; } public String getPicasaID() {  return picasaID; } public void setPicasaID(String picasaID) {  this.picasaID = picasaID; } public String get_count() {  return _count; } public void set_count(String _count) {  this._count = _count; } public String get_id() {  return _id; } public void set_id(String _id) {  this._id = _id; } public String getDateAdded() {  return dateAdded; } public void setDateAdded(String dateAdded) {  this.dateAdded = dateAdded; } public String getDateModified() {  return dateModified; } public void setDateModified(String dateModified) {  this.dateModified = dateModified; } public String getHeight() {  return height; } public void setHeight(String height) {  this.height = height; } public String getMimeType() {  return mimeType; } public void setMimeType(String mimeType) {  this.mimeType = mimeType; } public String getSize() {  return size; } public void setSize(String size) {  this.size = size; } public String getTitle() {  return title; } public void setTitle(String title) {  this.title = title; } public String getWidth() {  return width; } public void setWidth(String width) {  this.width = width; } public CameraPhotoBean(int cameraAngle, String cameraPath, long timer,  String bucketDisplayName,   String bucketID, String dateTaken, String isPrivate, String latitude, String miniThumbMagic,   String picasaID, String _count, String _id, String dateAdded, String dateModified, String height,   String mimeType, String size, String title, String width) {  super();  this.cameraAngle = cameraAngle;  this.cameraPath = cameraPath;  this.timer = timer;  this.bucketDisplayName = bucketDisplayName;  this.bucketID = bucketID;  this.dateTaken = dateTaken;  this.isPrivate = isPrivate;  this.latitude = latitude;  this.miniThumbMagic = miniThumbMagic;  this.picasaID = picasaID;  this._count = _count;  this._id = _id;  this.dateAdded = dateAdded;  this.dateModified = dateModified;  this.height = height;  this.mimeType = mimeType;  this.size = size;  this.title = title;  this.width = width; } @Override public String toString() {  return "CameraPhotoBean ["    + " \n 旋转角度 cameraAngle---------= " + cameraAngle     + ",\n 相片绝对路径 cameraPath----------= " + cameraPath     + ",\n 拍照时间 timer---------------= " + timer    + ",\n 相对路径 bucketDisplayName---= " + bucketDisplayName     + ",\n bucketID-------------------= " + bucketID    + ",\n dateTaken------------------= " + dateTaken     + ",\n isPrivate------------------= " + isPrivate     + ",\n latitude-------------------= " + latitude    + ",\n miniThumbMagic-------------= " + miniThumbMagic     + ",\n picasaID-------------------= " + picasaID     + ",\n _count---------------------= " + _count     + ",\n _id------------------------= "+ _id     + ",\n dateAdded------------------= " + dateAdded     + ",\n dateModified---------------= " + dateModified     + ",\n height---------------------= " + height    + ",\n 文件格式 mimeType------------= " + mimeType     + ",\n size-----------------------= " + size     + ",\n title----------------------= " + title     + ",\n width----------------------= " + width + "]"; }  }














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值