1.Pick File
void pickFile(File aFile) { Intent theIntent = new Intent(Intent.ACTION_PICK); theIntent.setData(Uri.fromFile(aFile)); //default file / jump directly to this file/folder theIntent.putExtra(Intent.EXTRA_TITLE,"A Custom Title"); //optional theIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); //optional try { startActivityForResult(theIntent,PICK_FILE_RESULT_CODE); } catch (Exception e) { e.printStackTrace(); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case PICK_FILE_RESULT_CODE: { if (resultCode==RESULT_OK && data!=null && data.getData()!=null) { String theFilePath = data.getData().getPath(); ... } break; } }}
Uri.fromFile(aFile) == Uri.parse("file://"+aFile.getPath())
2.
void pickFiles(File aFolder) { Intent theIntent = new Intent(Intent.ACTION_PICK); theIntent.setData(Uri.fromFile(aFolder)); //jump directly to this folder theIntent.putExtra("com.blackmoonit.extra.ALLOW_MULTIPLE",true); //required theIntent.putExtra(Intent.EXTRA_TITLE,"A Custom Title"); //optional theIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); //optional try { startActivityForResult(theIntent,PICK_FILES_RESULT_CODE); } catch (Exception e) { e.printStackTrace(); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case PICK_FILES_RESULT_CODE: { if (resultCode==RESULT_OK && data!=null && data.getExtras()!=null) { ArrayList<Uri> theFileUriList = data.getExtras().get(Intent.EXTRA_STREAM); ... } break; } }}
void pickFolder(File aFolder) { Intent theIntent = new Intent(Intent.ACTION_PICK); theIntent.setData(Uri.parse("folder://"+aFolder.getPath())); //default folder / jump directly to this folder theIntent.putExtra(Intent.EXTRA_TITLE,"A Custom Title"); //optional theIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); //optional try { startActivityForResult(theIntent,PICK_FOLDER_RESULT_CODE); } catch (Exception e) { e.printStackTrace(); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case PICK_FOLDER_RESULT_CODE: { if (resultCode==RESULT_OK && data!=null && data.getData()!=null) { String theFolderPath = data.getData().getPath(); ... } break; } }}
2.
void saveToFile(File aFile) { Uri theUri = Uri.fromFile(aFile).buildUpon().scheme("file.new").build(); Intent theIntent = new Intent(Intent.ACTION_PICK); theIntent.setData(theUri); theIntent.putExtra(Intent.EXTRA_TITLE,"A Custom Title"); //optional theIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); //optional try { startActivityForResult(theIntent,SAVE_FILE_RESULT_CODE); } catch (Exception e) { e.printStackTrace(); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case SAVE_FILE_RESULT_CODE: { if (resultCode==RESULT_OK && data!=null && data.getData()!=null) { String theFilePath = data.getData().getPath(); ... } break; } }}
void saveToFolder(File aFolder) { Uri theUri = Uri.fromFile(aFolder).buildUpon().scheme("folder.new").build(); Intent theIntent = new Intent(Intent.ACTION_PICK); theIntent.setData(theUri); theIntent.putExtra(Intent.EXTRA_TITLE,"A Custom Title"); //optional theIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); //optional try { startActivityForResult(theIntent,SAVE_FOLDER_RESULT_CODE); } catch (Exception e) { e.printStackTrace(); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case SAVE_FOLDER_RESULT_CODE: { if (resultCode==RESULT_OK && data!=null && data.getData()!=null) { String theFolderPath = data.getData().getPath(); ... } break; } }}
3.
private static final String EXTRA_DIRECTORY = "com.blackmoonit.intent.extra.DIRECTORY";void createPlaylist(ArrayList<Uri> aFileList) { String theDefaultFolderPath = "/sdcard/playlists"; Intent theIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); theIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,aFileList); theIntent.setType("audio/*"); theIntent.putExtra(EXTRA_DIRECTORY,theDefaultFolderPath); //optional try { startActivity(theIntent); } catch (Exception e) { e.printStackTrace(); }}
4.
Create Zip file
Create Zip file
private static final String EXTRA_DIRECTORY = "com.blackmoonit.intent.extra.DIRECTORY";void createZipFile(ArrayList<Uri> aFileList) { Intent theIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); theIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,aFileList); theIntent.setType("multipart/mixed"); //this should be a good faith attempt at determining the MIME type String theFolderPath = "/sdcard/some_folder"; //all files in the Zip will be stored relative to this path theIntent.putExtra(EXTRA_DIRECTORY,theFolderPath); try { startActivity(theIntent); } catch (Exception e) { e.printStackTrace(); }}
void createZipFile(File aFile) { Intent theIntent = new Intent(Intent.ACTION_SEND); theIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(aFile)); try { startActivity(theIntent); } catch (Exception e) { e.printStackTrace(); }}
void unpackZipFile(File aFile) { Intent theIntent = new Intent(Intent.ACTION_VIEW); theIntent.setDataAndType(Uri.fromFile(aFile),"application/zip"); try { startActivity(theIntent); } catch (Exception e) { e.printStackTrace(); }}
public static final String MIME_AUTHORITY = "com.blackmoonit.FileBrowser.mimeType"; public static final Uri MIMETYPE_URI = Uri.parse("content://" + MIME_AUTHORITY );private String getMIMEtypeFromProvider(String aFilename) { Uri theContentTypeRequest = Uri.withAppendedPath(MIMETYPE_URI,aFilename); Cursor theTypeResult = managedQuery(theContentTypeRequest, null, null, null, null); theTypeResult.moveToFirst(); if (!theTypeResult.isNull(0)) { return theTypeResult.getString(0); } else { return null; }}
3341

被折叠的 条评论
为什么被折叠?



