android.webkit.URLUtil#guessFileName ( )源码实例Demo

下面列出了android.webkit.URLUtil#guessFileName ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: AntennaPodSP   文件: DownloadRequester.java
public String getMediafilename(FeedMedia media) {
    String filename;
    String titleBaseFilename = "";

    // Try to generate the filename by the item title
    if (media.getItem() != null && media.getItem().getTitle() != null) {
        String title = media.getItem().getTitle();
        // Delete reserved characters
        titleBaseFilename = title.replaceAll("[\\\\/%\\?\\*:|<>\"\\p{Cntrl}]", "");
        titleBaseFilename = titleBaseFilename.trim();
    }

    String URLBaseFilename = URLUtil.guessFileName(media.getDownload_url(),
            null, media.getMime_type());
    ;

    if (titleBaseFilename != "") {
        // Append extension
        filename = titleBaseFilename + FilenameUtils.EXTENSION_SEPARATOR +
                FilenameUtils.getExtension(URLBaseFilename);
    } else {
        // Fall back on URL file name
        filename = URLBaseFilename;
    }
    return filename;
}
 
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case RequestCode.SELECT_JSON_FILE:
                selectedFilePath = data.getData();
                rlJsonUp.setVisibility(View.GONE);
                rlJsonPath.setVisibility(View.VISIBLE);
                tlJsonPwd.setVisibility(View.VISIBLE);
                if (selectedFilePath != null) {
                    btnRestore.setEnabled(true);
                    String fileName = URLUtil.guessFileName(selectedFilePath.getLastPathSegment(), null, null);
                    tvJsonPath.setText(fileName);
                } else {
                    Toast.makeText(getApplicationContext(), getString(R.string.restore_backup_wrong_file_name), Toast.LENGTH_LONG).show();
                }
                break;
            case RequestCode.QR_CODE_REQUEST_CODE:
                String result = data.getStringExtra(Extras.QR_CODE_RESULT);
                if (!result.isEmpty()) {
                    String address = filterAddress(result);
                    etBackupPhrase.setText(address);
                }
                break;
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}
 
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case RequestCode.SELECT_JSON_FILE:
                selectedFilePath = data.getData();
                rlJsonUp.setVisibility(View.GONE);
                rlJsonPath.setVisibility(View.VISIBLE);
                tlJsonPwd.setVisibility(View.VISIBLE);
                if (selectedFilePath != null) {
                    btnRestore.setEnabled(true);
                    String fileName = URLUtil.guessFileName(selectedFilePath.getLastPathSegment(), null, null);
                    tvJsonPath.setText(fileName);
                } else {
                    Toast.makeText(getApplicationContext(), getString(R.string.restore_backup_wrong_file_name), Toast.LENGTH_LONG).show();
                }
                break;
            case RequestCode.QR_CODE_REQUEST_CODE:
                String result = data.getStringExtra(Extras.QR_CODE_RESULT);
                if (!result.isEmpty()) {
                    String address = filterAddress(result);
                    etBackupPhrase.setText(address);
                }
                break;
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}
 
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case RequestCode.SELECT_JSON_FILE:
                selectedFilePath = data.getData();
                rlJsonUp.setVisibility(View.GONE);
                rlJsonPath.setVisibility(View.VISIBLE);
                tlJsonPwd.setVisibility(View.VISIBLE);
                if (selectedFilePath != null) {
                    btnRestore.setEnabled(true);
                    String fileName = URLUtil.guessFileName(selectedFilePath.getLastPathSegment(), null, null);
                    tvJsonPath.setText(fileName);
                } else {
                    Toast.makeText(getApplicationContext(), getString(R.string.restore_backup_wrong_file_name), Toast.LENGTH_LONG).show();
                }
                break;
            case RequestCode.QR_CODE_REQUEST_CODE:
                String result = data.getStringExtra(Extras.QR_CODE_RESULT);
                if (!result.isEmpty()) {
                    String address = filterAddress(result);
                    etBackupPhrase.setText(address);
                }
                break;
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}
 
源代码5 项目: browser   文件: Utils.java
public static void downloadFile(final Activity activity, final String url,
		final String userAgent, final String contentDisposition, final boolean privateBrowsing) {
	String fileName = URLUtil.guessFileName(url, null, null);
	DownloadHandler.onDownloadStart(activity, url, userAgent, contentDisposition, null,
			privateBrowsing);
	Log.i(Constants.TAG, "Downloading" + fileName);
}
 
源代码6 项目: browser   文件: LightningDownloadListener.java
@Override
public void onDownloadStart(final String url, final String userAgent,
		final String contentDisposition, final String mimetype, long contentLength) {
	String fileName = URLUtil.guessFileName(url, contentDisposition, mimetype);
	DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
		@Override
		public void onClick(DialogInterface dialog, int which) {
			switch (which) {
				case DialogInterface.BUTTON_POSITIVE:
					DownloadHandler.onDownloadStart(mActivity, url, userAgent,
							contentDisposition, mimetype, false);
					break;

				case DialogInterface.BUTTON_NEGATIVE:
					break;
			}
		}
	};

	AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); // dialog
	builder.setTitle(fileName)
			.setMessage(mActivity.getResources().getString(R.string.dialog_download))
			.setPositiveButton(mActivity.getResources().getString(R.string.action_download),
					dialogClickListener)
			.setNegativeButton(mActivity.getResources().getString(R.string.action_cancel),
					dialogClickListener).show();
	Log.i(Constants.TAG, "Downloading" + fileName);

}
 
源代码7 项目: delion   文件: OMADownloadHandler.java
/**
 * Enqueue a download request to the DownloadManager and starts downloading the OMA content.
 *
 * @param downloadId The unique identifier maintained by the Android DownloadManager.
 * @param downloadInfo Information about the download.
 * @param omaInfo Information about the OMA content.
 */
private void downloadOMAContent(long downloadId, DownloadInfo downloadInfo, OMAInfo omaInfo) {
    if (omaInfo == null) return;
    String mimeType = omaInfo.getDrmType();
    if (mimeType == null) {
        mimeType = getOpennableType(mContext.getPackageManager(), omaInfo);
    }
    String fileName = omaInfo.getValue(OMA_NAME);
    String url = omaInfo.getValue(OMA_OBJECT_URI);
    if (TextUtils.isEmpty(fileName)) {
        fileName = URLUtil.guessFileName(url, null, mimeType);
    }
    DownloadInfo newInfo = DownloadInfo.Builder.fromDownloadInfo(downloadInfo)
            .setFileName(fileName)
            .setUrl(url)
            .setMimeType(mimeType)
            .setDescription(omaInfo.getValue(OMA_DESCRIPTION))
            .setContentLength(getSize(omaInfo))
            .build();
    // If installNotifyURI is not empty, the downloaded content cannot
    // be used until the PostStatusTask gets a 200-series response.
    // Don't show complete notification until that happens.
    DownloadItem item = new DownloadItem(true, newInfo);
    item.setSystemDownloadId(downloadId);
    DownloadManagerService.getDownloadManagerService(mContext).enqueueDownloadManagerRequest(
            item, omaInfo.isValueEmpty(OMA_INSTALL_NOTIFY_URI));
    mPendingOMADownloads.put(downloadId, omaInfo);
}
 
源代码8 项目: delion   文件: ChromeDownloadDelegate.java
/**
 * For certain download types(OMA for example), android DownloadManager should
 * handle them. Call this function to intercept those downloads.
 *
 * @param url URL to be downloaded.
 * @return whether the DownloadManager should intercept the download.
 */
public boolean shouldInterceptContextMenuDownload(String url) {
    Uri uri = Uri.parse(url);
    String scheme = uri.normalizeScheme().getScheme();
    if (!"http".equals(scheme) && !"https".equals(scheme)) return false;
    String path = uri.getPath();
    // OMA downloads have extension "dm" or "dd". For the latter, it
    // can be handled when native download completes.
    if (path != null && (path.endsWith(".dm"))) {
        if (mTab == null) return true;
        String fileName = URLUtil.guessFileName(
                url, null, OMADownloadHandler.OMA_DRM_MESSAGE_MIME);
        final DownloadInfo downloadInfo =
                new DownloadInfo.Builder().setUrl(url).setFileName(fileName).build();
        WindowAndroid window = mTab.getWindowAndroid();
        if (window.hasPermission(permission.WRITE_EXTERNAL_STORAGE)) {
            onDownloadStartNoStream(downloadInfo);
        } else if (window.canRequestPermission(permission.WRITE_EXTERNAL_STORAGE)) {
            PermissionCallback permissionCallback = new PermissionCallback() {
                @Override
                public void onRequestPermissionsResult(
                        String[] permissions, int[] grantResults) {
                    if (grantResults.length > 0
                            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        onDownloadStartNoStream(downloadInfo);
                    }
                }
            };
            window.requestPermissions(
                    new String[] {permission.WRITE_EXTERNAL_STORAGE}, permissionCallback);
        }
        return true;
    }
    return false;
}
 
源代码9 项目: MyImageUtil   文件: FrescoUtil.java
/**
 * 拷贝到某一个目录中,自动命名
 * @param url
 * @param dir
 * @return
 */
public static File copyCacheFileToDir(String url,File dir){
    url = append(url);
    if (dir == null ){
        return null;
    }
    if (!dir.isDirectory()){
        throw  new RuntimeException(dir + "is not a directory,you should call copyCacheFile(String url,File path)");
    }
    if (!dir.exists()){
        dir.mkdirs();
    }
    String fileName = URLUtil.guessFileName(url,"","");//android SDK 提供的方法.
    // 注意不能直接采用file的getName拿到文件名,因为缓存文件是用cacheKey命名的
    if (TextUtils.isEmpty(fileName)){
        fileName = UUID.randomUUID().toString();
    }
    File newFile = new File(dir,fileName);

   boolean isSuccess =  copyCacheFile(url,newFile);
    if (isSuccess){
        return newFile;
    }else {
        return null;
    }

}
 
源代码10 项目: AndroidChromium   文件: OMADownloadHandler.java
/**
 * Enqueue a download request to the DownloadManager and starts downloading the OMA content.
 *
 * @param downloadId The unique identifier maintained by the Android DownloadManager.
 * @param downloadInfo Information about the download.
 * @param omaInfo Information about the OMA content.
 */
private void downloadOMAContent(long downloadId, DownloadInfo downloadInfo, OMAInfo omaInfo) {
    if (omaInfo == null) return;
    String mimeType = omaInfo.getDrmType();
    if (mimeType == null) {
        mimeType = getOpennableType(mContext.getPackageManager(), omaInfo);
    }
    String fileName = omaInfo.getValue(OMA_NAME);
    String url = omaInfo.getValue(OMA_OBJECT_URI);
    if (TextUtils.isEmpty(fileName)) {
        fileName = URLUtil.guessFileName(url, null, mimeType);
    }
    DownloadInfo newInfo = DownloadInfo.Builder.fromDownloadInfo(downloadInfo)
            .setFileName(fileName)
            .setUrl(url)
            .setMimeType(mimeType)
            .setDescription(omaInfo.getValue(OMA_DESCRIPTION))
            .setContentLength(getSize(omaInfo))
            .build();
    // If installNotifyURI is not empty, the downloaded content cannot
    // be used until the PostStatusTask gets a 200-series response.
    // Don't show complete notification until that happens.
    DownloadItem item = new DownloadItem(true, newInfo);
    item.setSystemDownloadId(downloadId);
    DownloadManagerService.getDownloadManagerService(mContext).enqueueDownloadManagerRequest(
            item, omaInfo.isValueEmpty(OMA_INSTALL_NOTIFY_URI));
    mPendingOMADownloads.put(downloadId, omaInfo);
}
 
源代码11 项目: AndroidChromium   文件: ChromeDownloadDelegate.java
/**
 * For certain download types(OMA for example), android DownloadManager should
 * handle them. Call this function to intercept those downloads.
 *
 * @param url URL to be downloaded.
 * @return whether the DownloadManager should intercept the download.
 */
public boolean shouldInterceptContextMenuDownload(String url) {
    Uri uri = Uri.parse(url);
    String scheme = uri.normalizeScheme().getScheme();
    if (!"http".equals(scheme) && !"https".equals(scheme)) return false;
    String path = uri.getPath();
    // OMA downloads have extension "dm" or "dd". For the latter, it
    // can be handled when native download completes.
    if (path == null || !path.endsWith(".dm")) return false;
    if (mTab == null) return true;
    String fileName = URLUtil.guessFileName(
            url, null, OMADownloadHandler.OMA_DRM_MESSAGE_MIME);
    final DownloadInfo downloadInfo =
            new DownloadInfo.Builder().setUrl(url).setFileName(fileName).build();
    WindowAndroid window = mTab.getWindowAndroid();
    if (window.hasPermission(permission.WRITE_EXTERNAL_STORAGE)) {
        onDownloadStartNoStream(downloadInfo);
    } else if (window.canRequestPermission(permission.WRITE_EXTERNAL_STORAGE)) {
        PermissionCallback permissionCallback = new PermissionCallback() {
            @Override
            public void onRequestPermissionsResult(
                    String[] permissions, int[] grantResults) {
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    onDownloadStartNoStream(downloadInfo);
                }
            }
        };
        window.requestPermissions(
                new String[] {permission.WRITE_EXTERNAL_STORAGE}, permissionCallback);
    }
    return true;
}
 
源代码12 项目: FrescoUtlis   文件: FrescoUtils.java
/**
 * 拷贝到某一个目录中,自动命名
 * @param url
 * @param dir
 * @return
 */
public static File copyCacheFileToDir(String url,File dir){

    if (dir == null ){
        return null;
    }
    if (!dir.isDirectory()){
        throw  new RuntimeException(dir + "is not a directory,you should call copyCacheFile(String url,File path)");
    }
    if (!dir.exists()){
        dir.mkdirs();
    }
    String fileName = URLUtil.guessFileName(url,"","");//android SDK 提供的方法.
    // 注意不能直接采用file的getName拿到文件名,因为缓存文件是用cacheKey命名的
    if (TextUtils.isEmpty(fileName)){
        fileName = UUID.randomUUID().toString();
    }
    File newFile = new File(dir,fileName);

   boolean isSuccess =  copyCacheFile(url,newFile);
    if (isSuccess){
        return newFile;
    }else {
        return null;
    }

}
 
源代码13 项目: Zom-Android-XMPP   文件: Downloader.java
private String getFilenameFromUrl(String urlString) {
    String fileName = URLUtil.guessFileName(urlString, null, null);

    if (fileName.contains("#"))
        return fileName.split("#")[0];
    else if (fileName.contains("?"))
        return fileName.split("\\?")[0];
    else
        return fileName;

}
 
源代码14 项目: 365browser   文件: OMADownloadHandler.java
/**
 * Enqueue a download request to the DownloadManager and starts downloading the OMA content.
 *
 * @param downloadId The unique identifier maintained by the Android DownloadManager.
 * @param downloadInfo Information about the download.
 * @param omaInfo Information about the OMA content.
 */
@VisibleForTesting
protected void downloadOMAContent(long downloadId, DownloadInfo downloadInfo, OMAInfo omaInfo) {
    if (omaInfo == null) return;
    String mimeType = omaInfo.getDrmType();
    if (mimeType == null) {
        mimeType = getOpennableType(mContext.getPackageManager(), omaInfo);
    }
    String fileName = omaInfo.getValue(OMA_NAME);
    String url = omaInfo.getValue(OMA_OBJECT_URI);
    if (TextUtils.isEmpty(fileName)) {
        fileName = URLUtil.guessFileName(url, null, mimeType);
    }
    DownloadInfo newInfo = DownloadInfo.Builder.fromDownloadInfo(downloadInfo)
            .setFileName(fileName)
            .setUrl(url)
            .setMimeType(mimeType)
            .setDescription(omaInfo.getValue(OMA_DESCRIPTION))
            .setBytesReceived(getSize(omaInfo))
            .build();
    // If installNotifyURI is not empty, the downloaded content cannot
    // be used until the PostStatusTask gets a 200-series response.
    // Don't show complete notification until that happens.
    DownloadItem item = new DownloadItem(true, newInfo);
    item.setSystemDownloadId(downloadId);
    mDownloadManagerDelegate.enqueueDownloadManagerRequest(
            item, omaInfo.isValueEmpty(OMA_INSTALL_NOTIFY_URI), this);
    mPendingOMADownloads.put(downloadId, omaInfo);
}
 
源代码15 项目: 365browser   文件: ChromeDownloadDelegate.java
/**
 * For certain download types(OMA for example), android DownloadManager should
 * handle them. Call this function to intercept those downloads.
 *
 * @param url URL to be downloaded.
 * @return whether the DownloadManager should intercept the download.
 */
public boolean shouldInterceptContextMenuDownload(String url) {
    Uri uri = Uri.parse(url);
    String scheme = uri.normalizeScheme().getScheme();
    if (!UrlConstants.HTTP_SCHEME.equals(scheme) && !UrlConstants.HTTPS_SCHEME.equals(scheme)) {
        return false;
    }
    String path = uri.getPath();
    if (!OMADownloadHandler.isOMAFile(path)) return false;
    if (mTab == null) return true;
    String fileName = URLUtil.guessFileName(
            url, null, OMADownloadHandler.OMA_DRM_MESSAGE_MIME);
    final DownloadInfo downloadInfo =
            new DownloadInfo.Builder().setUrl(url).setFileName(fileName).build();
    WindowAndroid window = mTab.getWindowAndroid();
    if (window.hasPermission(permission.WRITE_EXTERNAL_STORAGE)) {
        onDownloadStartNoStream(downloadInfo);
    } else if (window.canRequestPermission(permission.WRITE_EXTERNAL_STORAGE)) {
        PermissionCallback permissionCallback = new PermissionCallback() {
            @Override
            public void onRequestPermissionsResult(
                    String[] permissions, int[] grantResults) {
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    onDownloadStartNoStream(downloadInfo);
                }
            }
        };
        window.requestPermissions(
                new String[] {permission.WRITE_EXTERNAL_STORAGE}, permissionCallback);
    }
    return true;
}