门户营销型网站,管理系统服务,云端商城买流量,功能网站开发多少钱需要直接查询系统库来获取手机上的全部文件信息#xff0c;如#xff1a;图片#xff0c;视频#xff0c;音频#xff0c;pdf文件等等。
直接上代码#xff0c;获取文件的方法#xff1a; SuppressLint(Range)
public ArrayListDataBean getFiles(…需要直接查询系统库来获取手机上的全部文件信息如图片视频音频pdf文件等等。
直接上代码获取文件的方法
SuppressLint(Range)
public ArrayListDataBean getFiles(Context context) {ArrayListDataBean files new ArrayList();Cursor c null;try {String select null;Uri contentUri null;if (mUriType.equalsIgnoreCase(image)) {contentUri MediaStore.Images.Media.EXTERNAL_CONTENT_URI;} else if (mUriType.equalsIgnoreCase(video)) {contentUri MediaStore.Video.Media.EXTERNAL_CONTENT_URI;} else if (mUriType.equalsIgnoreCase(audio)) {select (_data NOT LIKE %.amr);contentUri MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;} else if (mUriType.equalsIgnoreCase(file)) {// 当前需求是只支持pdf文件select (_data LIKE %.pdf);contentUri MediaStore.Files.getContentUri(external);}ContentResolver mContentResolver context.getContentResolver();c mContentResolver.query(contentUri, null, select, null, null);if (c null || c.getCount() 0) {return new ArrayList();}int columnIndexOrThrowId c.getColumnIndexOrThrow(MediaStore.Files.FileColumns._ID);int columnIndexOrThrowMimeType c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.MIME_TYPE);int columnIndexOrThrowData c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA);int columnIndexOrThrowSize c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.SIZE);int columnIndexOrThrowTitle c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.TITLE);SuppressLint(InlinedApi)int columnIndexOrThrowDuration c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DURATION);int columnIndexOrThrowDataModified c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATE_MODIFIED);while (c.moveToNext()) {String path c.getString(columnIndexOrThrowData);String minType c.getString(columnIndexOrThrowMimeType);int position_do path.lastIndexOf(.);if (position_do -1) {continue;}int position_x path.lastIndexOf(File.separator);if (position_x -1) {continue;}String displayName path.substring(position_x 1);long size c.getLong(columnIndexOrThrowSize);if (size 0 || (mUriType.equalsIgnoreCase(video) size 100*1024*1024L)) {continue;}String title c.getString(columnIndexOrThrowTitle);long duration c.getLong(columnIndexOrThrowDuration);long modifieDate c.getLong(columnIndexOrThrowDataModified);long id c.getInt(columnIndexOrThrowId);Uri uri ContentUris.withAppendedId(contentUri, id);File file new File(path);String time new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date(file.lastModified()));DataBean info new DataBean();info.setName(displayName);info.setTime(title);info.setMinType(minType);info.setUri(uri);info.setPath(path);info.setSize(size);info.setDuration(duration);info.setUriType(mUriType);info.setId(id);info.setTime(time);info.setModifiedDate(modifieDate);files.add(info);}} catch (Exception e) {e.printStackTrace();} finally {if (c ! null) {c.close();}}return files;
} DataBean.jav类 public class DataBean implements Parcelable {private long id;private String name;private String title;private Uri uri;private String path;private String thumbPath;private long size;private long duration;private String time;private String minType;private long modifiedDate;private String uriType;private boolean checked false;public DataBean() {}public DataBean(String minType, Uri uri, long fileSize, long duration) {this.minType minType;this.uri uri;this.size fileSize;this.duration duration;}public DataBean(Parcel in) {id in.readLong();name in.readString();title in.readString();uri in.readParcelable(Uri.class.getClassLoader());path in.readString();thumbPath in.readString();size in.readLong();duration in.readLong();time in.readString();minType in.readString();modifiedDate in.readLong();uriType in.readString();checked in.readByte() ! 0;}public static final CreatorDataBean CREATOR new CreatorDataBean() {Overridepublic DataBean createFromParcel(Parcel in) {return new DataBean(in);}Overridepublic DataBean[] newArray(int size) {return new DataBean[size];}};public boolean isChecked() {return checked;}public void setChecked(boolean checked) {this.checked checked;}public String getUriType() {return uriType;}public void setUriType(String uriType) {this.uriType uriType;}public String getThumbPath() {return thumbPath;}public void setThumbPath(String thumbPath) {this.thumbPath thumbPath;}public long getDuration() {return duration / 1000;}public void setDuration(long duration) {this.duration duration;}public String getTitle() {return title;}public void setTitle(String title) {this.title title;}public long getModifiedDate() {return modifiedDate;}public void setModifiedDate(long modifiedDate) {this.modifiedDate modifiedDate;}public String getMinType() {return minType;}public void setMinType(String minType) {this.minType minType;}public Uri getUri() {return uri;}public void setUri(Uri uri) {this.uri uri;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getPath() {return path;}public void setPath(String path) {this.path path;}public long getSize() {return size;}public void setSize(long size) {this.size size;}public long getId() {return id;}public void setId(long id) {this.id id;}public String getTime() {return time;}public void setTime(String time) {this.time time;}Overridepublic String toString() {return DataBean{ id id , name name \ , title title \ , uri uri , path path \ , thumbPath thumbPath \ , size size , duration duration , time time \ , minType minType \ , modifiedDate modifiedDate , uriType uriType \ , checked checked };}Overridepublic int describeContents() {return 0;}Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeLong(id);dest.writeString(name);dest.writeString(title);dest.writeParcelable(uri, flags);dest.writeString(path);dest.writeString(thumbPath);dest.writeLong(size);dest.writeLong(duration);dest.writeString(time);dest.writeString(minType);dest.writeLong(modifiedDate);dest.writeString(uriType);dest.writeByte((byte) (checked ? 1 : 0));}
}