1 // Copyright 2013 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_ANDROID_CONTENT_URI_UTILS_H_ 6 #define BASE_ANDROID_CONTENT_URI_UTILS_H_ 7 8 #include <jni.h> 9 #include <string> 10 11 #include "base/base_export.h" 12 #include "base/files/file.h" 13 #include "base/files/file_path.h" 14 15 namespace base { 16 17 // Opens a content URI for read and returns the file descriptor to the caller. 18 // Returns -1 if the URI is invalid. 19 BASE_EXPORT File OpenContentUriForRead(const FilePath& content_uri); 20 21 // Check whether a content URI exists. 22 BASE_EXPORT bool ContentUriExists(const FilePath& content_uri); 23 24 // Gets MIME type from a content URI. Returns an empty string if the URI is 25 // invalid. 26 BASE_EXPORT std::string GetContentUriMimeType(const FilePath& content_uri); 27 28 // Gets the display name from a content URI. Returns true if the name was found. 29 BASE_EXPORT bool MaybeGetFileDisplayName(const FilePath& content_uri, 30 std::u16string* file_display_name); 31 32 // Deletes a content URI. 33 BASE_EXPORT bool DeleteContentUri(const FilePath& content_uri); 34 35 // Gets content URI's file path (eg: "content://org.chromium...") from normal 36 // file path (eg: "/data/user/0/..."). 37 BASE_EXPORT FilePath GetContentUriFromFilePath(const FilePath& file_path); 38 39 } // namespace base 40 41 #endif // BASE_ANDROID_CONTENT_URI_UTILS_H_ 42