當前位置: 首頁>>代碼示例>>Java>>正文


Java Uri.getEncodedPath方法代碼示例

本文整理匯總了Java中android.net.Uri.getEncodedPath方法的典型用法代碼示例。如果您正苦於以下問題:Java Uri.getEncodedPath方法的具體用法?Java Uri.getEncodedPath怎麽用?Java Uri.getEncodedPath使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.net.Uri的用法示例。


在下文中一共展示了Uri.getEncodedPath方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: openAssetFile

import android.net.Uri; //導入方法依賴的package包/類
@Override
public AssetFileDescriptor openAssetFile(Uri uri, String mode)
		throws FileNotFoundException {
       initIfNecessary();
	String path = uri.getEncodedPath();
	if ( path.startsWith("/") ) {
		path = path.substring(1);
	}
	return mAPKExtensionFile.getAssetFileDescriptor(path);		
}
 
開發者ID:12d,項目名稱:react-native-videoplayer,代碼行數:11,代碼來源:APEZProvider.java

示例2: getFileForUri

import android.net.Uri; //導入方法依賴的package包/類
public File getFileForUri(Uri uri) {
    String path = uri.getEncodedPath();
    int splitIndex = path.indexOf(47, 1);
    String tag = Uri.decode(path.substring(1, splitIndex));
    path = Uri.decode(path.substring(splitIndex + 1));
    File root = (File) this.mRoots.get(tag);
    if (root == null) {
        throw new IllegalArgumentException("Unable to find configured root for " + uri);
    }
    File file = new File(root, path);
    try {
        file = file.getCanonicalFile();
        if (file.getPath().startsWith(root.getPath())) {
            return file;
        }
        throw new SecurityException("Resolved path jumped beyond configured root");
    } catch (IOException e) {
        throw new IllegalArgumentException("Failed to resolve canonical path for " + file);
    }
}
 
開發者ID:JackChan1999,項目名稱:letv,代碼行數:21,代碼來源:FileProvider.java

示例3: query

import android.net.Uri; //導入方法依賴的package包/類
@SuppressLint("NewApi")
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
    String path = uri.getEncodedPath();
    if (!path.startsWith("/font/")
            || selectionArgs == null ||  selectionArgs[0] == null) {
        return null;
    }

    String name = path.substring("/font/".length());
    String[] w = selectionArgs[0].split(",");
    int[] weight = new int[w.length];
    for (int i = 0; i < w.length; i++) {
        weight[i] = Integer.parseInt(w[i]);
    }

    FontFamily[] families = FontManager.getFontFamily(getContext(), name, weight);

    Bundle bundle = new Bundle();
    bundle.putParcelableArray("data", families);

    AbstractCursor cursor = new SimpleCursor();
    cursor.setExtras(bundle);
    return cursor;
}
 
開發者ID:RikkaApps,項目名稱:FontProvider,代碼行數:27,代碼來源:FontProvider.java

示例4: toLocalUri

import android.net.Uri; //導入方法依賴的package包/類
@Override
public LocalFilesystemURL toLocalUri(Uri inputURL) {
    if (!"content".equals(inputURL.getScheme())) {
        return null;
    }
    String subPath = inputURL.getEncodedPath();
    if (subPath.length() > 0) {
        subPath = subPath.substring(1);
    }
    Uri.Builder b = new Uri.Builder()
        .scheme(LocalFilesystemURL.FILESYSTEM_PROTOCOL)
        .authority("localhost")
        .path(name)
        .appendPath(inputURL.getAuthority());
    if (subPath.length() > 0) {
        b.appendEncodedPath(subPath);
    }
    Uri localUri = b.encodedQuery(inputURL.getEncodedQuery())
        .encodedFragment(inputURL.getEncodedFragment())
        .build();
    return LocalFilesystemURL.parse(localUri);
}
 
開發者ID:alex-shpak,項目名稱:keemob,代碼行數:23,代碼來源:ContentFilesystem.java

示例5: getFileForUri

import android.net.Uri; //導入方法依賴的package包/類
@Override
public File getFileForUri(Uri uri) {
    String path = uri.getEncodedPath();
    final int splitIndex = path.indexOf('/', 1);
    final String tag = Uri.decode(path.substring(1, splitIndex));
    path = Uri.decode(path.substring(splitIndex + 1));
    final File root = mRoots.get(tag);
    if (root == null) {
        throw new IllegalArgumentException("Unable to find configured root for " + uri );
    }
    File file = new File(root, path);
    try {
        file = file.getCanonicalFile();
    } catch (IOException e) {
        throw new IllegalArgumentException("Failed to resolve canonical path for " + file);
    }
    if (!file.getPath().startsWith(root.getPath())) {
        throw new SecurityException("Resolved path jumped beyond configured root");
    }
    return file;
}
 
開發者ID:yasirkula,項目名稱:UnityNativeShare,代碼行數:22,代碼來源:UnitySSContentProvider.java

示例6: getFileForUri

import android.net.Uri; //導入方法依賴的package包/類
@Override
public File getFileForUri(Uri uri) {
    String path = uri.getEncodedPath();

    final int splitIndex = path.indexOf('/', 1);
    final String tag = Uri.decode(path.substring(1, splitIndex));
    path = Uri.decode(path.substring(splitIndex + 1));

    final File root = mRoots.get(tag);
    if (root == null) {
        throw new IllegalArgumentException("Unable to find configured root for " + uri);
    }

    File file = new File(root, path);
    try {
        file = file.getCanonicalFile();
    } catch (IOException e) {
        throw new IllegalArgumentException("Failed to resolve canonical path for " + file);
    }

    if (!file.getPath().startsWith(root.getPath())) {
        throw new SecurityException("Resolved path jumped beyond configured root");
    }

    return file;
}
 
開發者ID:roshakorost,項目名稱:Phial,代碼行數:27,代碼來源:FileProvider.java

示例7: a

import android.net.Uri; //導入方法依賴的package包/類
public static MLinkResult a(Uri uri, Uri uri2) {
    if (uri2 == null) {
        return new MLinkResult();
    }
    String scheme = uri2.getScheme();
    String host = uri2.getHost();
    int port = uri2.getPort();
    String encodedPath = uri2.getEncodedPath();
    String encodedQuery = uri2.getEncodedQuery();
    String scheme2 = uri.getScheme();
    String host2 = uri.getHost();
    int port2 = uri.getPort();
    String encodedPath2 = uri.getEncodedPath();
    String encodedQuery2 = uri.getEncodedQuery();
    if (n.a(scheme, scheme2) && n.a(host, host2) && port == port2) {
        return a(encodedPath, encodedPath2, a(encodedQuery2, encodedQuery));
    }
    return new MLinkResult();
}
 
開發者ID:JackChan1999,項目名稱:boohee_v5.6,代碼行數:20,代碼來源:d.java

示例8: uriToPath

import android.net.Uri; //導入方法依賴的package包/類
public static String uriToPath(Uri uri) {
//        URI looks like this content://sk.momosi.fuelup.file.provider/external_files/Pictures/FuelUp/JPEF....
        if (!AUTHORITY.equals(uri.getAuthority())) {
            throw new IllegalArgumentException("This URI is not provided by " + GenericFileProvider.class.getSimpleName());
        }

        String path = uri.getEncodedPath();
        path = path.replace("/"+ EXTERNAL_PATH, Environment.getExternalStorageDirectory().getAbsolutePath());
        return path;
    }
 
開發者ID:piskula,項目名稱:FuelUp,代碼行數:11,代碼來源:GenericFileProvider.java

示例9: openFile

import android.net.Uri; //導入方法依賴的package包/類
@Nullable
@Override
public ParcelFileDescriptor openFile(@NonNull Uri uri, @NonNull String mode) throws FileNotFoundException {
    String path = uri.getEncodedPath();
    if (!path.startsWith("/file/")) {
        return null;
    }

    return FontManager.getParcelFileDescriptor(getContext(), path.substring("/file/".length()));
}
 
開發者ID:RikkaApps,項目名稱:FontProvider,代碼行數:11,代碼來源:FontProvider.java

示例10: parseOwnUri

import android.net.Uri; //導入方法依賴的package包/類
/**
 * 提供的Uri 解析出文件絕對路徑
 *
 * @param uri
 * @return
 */
public static String parseOwnUri(Uri uri, Context context,File cameraFile) {
    if (uri == null) return "";
    String path;
    if (TextUtils.equals(uri.getAuthority(), getFileProviderName(context))) {
        if (cameraFile != null){
            return  cameraFile.getAbsolutePath();
        }else{
            path = new File(Environment.getExternalStorageDirectory(), uri.getPath().replace("my_external/", "")).getAbsolutePath();
        }
    } else {
        path = uri.getEncodedPath();
    }
    return path;
}
 
開發者ID:lennyup,項目名稱:react-native-udesk,代碼行數:21,代碼來源:UdeskUtil.java

示例11: convertToRelativePath

import android.net.Uri; //導入方法依賴的package包/類
public static String convertToRelativePath(final Uri absoluteUri, final Uri relativeToUri)
{
    if (!absoluteUri.getScheme().equals(relativeToUri.getScheme()))
    {
        return null;
    }

    String absolutePath = null, relativeTo = null;
    if (isContentUri(absoluteUri))
    {
        absolutePath = AdapterDocuments.getPath(absoluteUri, true);
        relativeTo = AdapterDocuments.getPath(relativeToUri, true);
    }
    else
    {
        absolutePath = absoluteUri.getEncodedPath();
        relativeTo = relativeToUri.getEncodedPath();
    }
    if (absolutePath == null || relativeTo == null)
    {
        return null;
    }

    // Thanks to:
    // http://mrpmorris.blogspot.com/2007/05/convert-absolute-path-to-relative-path.html
    absolutePath = absolutePath.replaceAll("\\\\", "/");
    relativeTo = relativeTo.replaceAll("\\\\", "/");
    StringBuilder relativePath = null;

    if (!absolutePath.equals(relativeTo))
    {
        String[] absoluteDirectories = absolutePath.split("/");
        String[] relativeDirectories = relativeTo.split("/");

        //Get the shortest of the two paths
        int length = absoluteDirectories.length < relativeDirectories.length ? absoluteDirectories.length
                : relativeDirectories.length;

        //Use to determine where in the loop we exited
        int lastCommonRoot = -1;
        int index;

        //Find common root
        for (index = 0; index < length; index++)
        {
            if (absoluteDirectories[index].equals(relativeDirectories[index]))
            {
                lastCommonRoot = index;
            }
            else
            {
                break;
                //If we didn't find a common prefix then throw
            }
        }
        if (lastCommonRoot != -1)
        {
            //Build up the relative path
            relativePath = new StringBuilder();
            //Add on the ..
            for (index = lastCommonRoot + 1; index < absoluteDirectories.length; index++)
            {
                if (absoluteDirectories[index].length() > 0)
                {
                    relativePath.append("../");
                }
            }
            for (index = lastCommonRoot + 1; index < relativeDirectories.length - 1; index++)
            {
                relativePath.append(relativeDirectories[index] + "/");
            }
            relativePath.append(relativeDirectories[relativeDirectories.length - 1]);
        }
    }
    return relativePath == null ? null : relativePath.toString();
}
 
開發者ID:mkulesh,項目名稱:microMathematics,代碼行數:77,代碼來源:FileUtils.java


注:本文中的android.net.Uri.getEncodedPath方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。