媒体库权限新so适配

Signed-off-by: zhixiang_song <songzhixiang2@huawei.com>
This commit is contained in:
zhixiang_song
2025-12-27 11:30:28 +08:00
parent fa74b91e9f
commit 8e2e2ba036
3 changed files with 24 additions and 24 deletions
+2 -2
View File
@@ -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;