mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 12:43:16 -04:00
@@ -105,7 +105,7 @@ ohos_shared_library("libupms") {
|
||||
|
||||
if (ability_runtime_media_library_enable) {
|
||||
sources += [ "src/media_permission_manager.cpp" ]
|
||||
external_deps += [ "media_library:media_library_extend_manager" ]
|
||||
external_deps += [ "media_library:media_permission_helper" ]
|
||||
defines += [ "ABILITY_RUNTIME_MEDIA_LIBRARY_ENABLE" ]
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ ohos_static_library("libupms_static") {
|
||||
|
||||
if (ability_runtime_media_library_enable) {
|
||||
sources += [ "src/media_permission_manager.cpp" ]
|
||||
external_deps += [ "media_library:media_library_extend_manager" ]
|
||||
external_deps += [ "media_library:media_permission_helper" ]
|
||||
defines += [ "ABILITY_RUNTIME_MEDIA_LIBRARY_ENABLE" ]
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <vector>
|
||||
#include "uri.h"
|
||||
|
||||
#include "media_library_extend_manager.h"
|
||||
#include "media_permission_helper.h"
|
||||
|
||||
namespace OHOS {
|
||||
namespace AAFwk {
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
|
||||
private:
|
||||
MediaPermissionManager();
|
||||
Media::MediaLibraryExtendManager *GetMediaLibraryManager();
|
||||
Media::MediaPermissionHelper *GetMediaPermissionHelper();
|
||||
Media::PhotoPermissionType FlagToFileOpenMode(uint32_t flag);
|
||||
Media::HideSensitiveType ConvertHideSensitiveType(int32_t hideSensitiveType);
|
||||
};
|
||||
|
||||
@@ -39,16 +39,16 @@ MediaPermissionManager &MediaPermissionManager::GetInstance()
|
||||
|
||||
MediaPermissionManager::MediaPermissionManager() {}
|
||||
|
||||
Media::MediaLibraryExtendManager *MediaPermissionManager::GetMediaLibraryManager()
|
||||
Media::MediaPermissionHelper *MediaPermissionManager::GetMediaPermissionHelper()
|
||||
{
|
||||
TAG_LOGI(AAFwkTag::URIPERMMGR, "GetMediaLibraryExtendManager.");
|
||||
auto mediaLibraryManager = Media::MediaLibraryExtendManager::GetMediaLibraryExtendManager();
|
||||
if (mediaLibraryManager == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaLibraryExtendManager failed.");
|
||||
return mediaLibraryManager;
|
||||
TAG_LOGI(AAFwkTag::URIPERMMGR, "GetMediaPermissionHelper.");
|
||||
auto mediaPermissionHelper = Media::MediaPermissionHelper::GetMediaPermissionHelper();
|
||||
if (mediaPermissionHelper == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaPermissionHelper failed.");
|
||||
return mediaPermissionHelper;
|
||||
}
|
||||
mediaLibraryManager->InitMediaLibraryExtendManager();
|
||||
return mediaLibraryManager;
|
||||
mediaPermissionHelper->InitMediaPermissionHelper();
|
||||
return mediaPermissionHelper;
|
||||
}
|
||||
|
||||
std::vector<bool> MediaPermissionManager::CheckUriPermission(const std::vector<std::string> &uriVec,
|
||||
@@ -59,13 +59,13 @@ std::vector<bool> MediaPermissionManager::CheckUriPermission(const std::vector<s
|
||||
callerTokenId, flag);
|
||||
std::vector<bool> results = std::vector<bool>(uriVec.size(), false);
|
||||
flag &= (Want::FLAG_AUTH_READ_URI_PERMISSION | Want::FLAG_AUTH_WRITE_URI_PERMISSION);
|
||||
auto mediaLibraryManager = GetMediaLibraryManager();
|
||||
if (mediaLibraryManager == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaLibraryManager failed.");
|
||||
auto mediaPermissionHelper = GetMediaPermissionHelper();
|
||||
if (mediaPermissionHelper == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaPermissionHelper failed.");
|
||||
return results;
|
||||
}
|
||||
std::vector<uint32_t> flags(uriVec.size(), flag);
|
||||
auto ret = IN_PROCESS_CALL(mediaLibraryManager->CheckPhotoUriPermission(callerTokenId, uriVec, results, flags));
|
||||
auto ret = IN_PROCESS_CALL(mediaPermissionHelper->CheckPhotoUriPermission(callerTokenId, uriVec, results, flags));
|
||||
TAG_LOGD(AAFwkTag::URIPERMMGR, "CheckPhotoUriPermission finished.");
|
||||
if (ret != ERR_OK) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "Check photo uri permission failed, ret is %{public}d", ret);
|
||||
@@ -89,14 +89,14 @@ int32_t MediaPermissionManager::GrantUriPermission(const std::vector<std::string
|
||||
auto photoPermissionType = FlagToFileOpenMode(flag);
|
||||
TAG_LOGI(AAFwkTag::URIPERMMGR, "uris:%{public}zu, flag:%{public}u, perType:%{public}d, senType:%{public}d",
|
||||
uris.size(), flag, static_cast<int>(photoPermissionType), hideSensitiveType);
|
||||
auto mediaLibraryManager = GetMediaLibraryManager();
|
||||
if (mediaLibraryManager == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaLibraryManager failed.");
|
||||
auto mediaPermissionHelper = GetMediaPermissionHelper();
|
||||
if (mediaPermissionHelper == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaPermissionHelper failed.");
|
||||
return INNER_ERR;
|
||||
}
|
||||
auto mediahideSensitiveType = ConvertHideSensitiveType(hideSensitiveType);
|
||||
std::vector<Media::PhotoPermissionType> photoPermissionTypes(uris.size(), photoPermissionType);
|
||||
auto ret = IN_PROCESS_CALL(mediaLibraryManager->GrantPhotoUriPermission(
|
||||
auto ret = IN_PROCESS_CALL(mediaPermissionHelper->GrantPhotoUriPermission(
|
||||
callerTokenId, targetTokenId, uris, photoPermissionTypes, mediahideSensitiveType));
|
||||
TAG_LOGD(AAFwkTag::URIPERMMGR, "GrantPhotoUriPermission finished.");
|
||||
if (ret != ERR_OK) {
|
||||
@@ -130,12 +130,12 @@ int32_t MediaPermissionManager::RevokeUriPermission(uint32_t callerTokenId, uint
|
||||
TAG_LOGI(AAFwkTag::URIPERMMGR, "called, %{private}u, %{private}u, %{private}s", callerTokenId, targetTokenId,
|
||||
uri.c_str());
|
||||
std::vector<std::string> uris = {uri};
|
||||
auto mediaLibraryManager = GetMediaLibraryManager();
|
||||
if (mediaLibraryManager == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaLibraryManager failed.");
|
||||
auto mediaPermissionHelper = GetMediaPermissionHelper();
|
||||
if (mediaPermissionHelper == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "GetMediaPermissionHelper failed.");
|
||||
return INNER_ERR;
|
||||
}
|
||||
auto ret = IN_PROCESS_CALL(mediaLibraryManager->CancelPhotoUriPermission(callerTokenId, targetTokenId, uris));
|
||||
auto ret = IN_PROCESS_CALL(mediaPermissionHelper->CancelPhotoUriPermission(callerTokenId, targetTokenId, uris));
|
||||
if (ret != ERR_OK) {
|
||||
TAG_LOGE(AAFwkTag::URIPERMMGR, "Revoke media uri permission failed, ret:%{public}d", ret);
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user