{
SysTryReturn(NID_APP, appId.IsEmpty() == false, L"", E_INVALID_ARG, "appId is empty");
- String packageId;
-
- if (appId.StartsWith(L".", 10) == true)
- {
- appId.SubString(0, 10, packageId);
- }
- else
- {
- int result = 0;
- char* pPackageId = null;
- pkgmgrinfo_appinfo_h pAppInfoHandle = null;
+ PackageId packageId;
+ int result = 0;
+ char* pPackageId = null;
+ pkgmgrinfo_appinfo_h pAppInfoHandle = null;
- std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
- SysTryReturn(NID_APP, pAppId, L"", E_OUT_OF_MEMORY, "pAppId is null");
+ std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
+ SysTryReturn(NID_APP, pAppId, L"", E_OUT_OF_MEMORY, "pAppId is null");
- result = pkgmgrinfo_appinfo_get_appinfo(pAppId.get(), &pAppInfoHandle);
- SysTryReturn(NID_APP, result == 0, L"", E_PKG_NOT_INSTALLED, "pkgmgrinfo_appinfo_get_appinfo() failed. result=[%d], app=[%s]", result, pAppId.get());
+ result = pkgmgrinfo_appinfo_get_appinfo(pAppId.get(), &pAppInfoHandle);
+ SysTryReturn(NID_APP, result == 0, L"", E_PKG_NOT_INSTALLED, "pkgmgrinfo_appinfo_get_appinfo() failed. result=[%d], app=[%s]", result, pAppId.get());
- result = pkgmgrinfo_appinfo_get_pkgname(pAppInfoHandle, &pPackageId);
+ result = pkgmgrinfo_appinfo_get_pkgname(pAppInfoHandle, &pPackageId);
- packageId.Append(pPackageId);
+ packageId.Append(pPackageId);
- if(pAppInfoHandle)
- {
- pkgmgrinfo_appinfo_destroy_appinfo(pAppInfoHandle);
- }
+ if(pAppInfoHandle)
+ {
+ pkgmgrinfo_appinfo_destroy_appinfo(pAppInfoHandle);
}
SysLog(NID_APP, "app = [%ls], package = [%ls]", appId.GetPointer(), packageId.GetPointer());
bool
_PackageManagerImpl::IsAppInstalled(const AppId& appId)
{
- if (appId == _AppInfo::GetPackageId())
- {
- return true;
- }
+ SysTryReturn(NID_APP, appId.IsEmpty() == false, false, E_INVALID_ARG, "appId is empty.");
int result = 0;
- pkgmgrinfo_pkginfo_h pPackageInfoHandle = null;
+ pkgmgrinfo_appinfo_h pAppInfoHandle = null;
- std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(appId));
- SysTryReturn(NID_APP, pPackageId, false, E_OUT_OF_MEMORY, "pPackageId is null");
+ std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
+ SysTryReturn(NID_APP, pAppId, false, E_OUT_OF_MEMORY, "pAppId is null.");
- result = pkgmgrinfo_pkginfo_get_pkginfo(pPackageId.get(), &pPackageInfoHandle);
- SysTryReturn(NID_APP, result == 0, false, E_APP_NOT_INSTALLED, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], package=[%s]", result, pPackageId.get());
+ result = pkgmgrinfo_appinfo_get_appinfo(pAppId.get(), &pAppInfoHandle);
+ if (result != 0)
+ {
+ SysLog(NID_APP, "pkgmgrinfo_appinfo_get_appinfo() failed. result=[%d], app=[%s]", result, pAppId.get());
+ return false;
+ }
- if(pPackageInfoHandle)
+ if(pAppInfoHandle)
{
- pkgmgrinfo_pkginfo_destroy_pkginfo(pPackageInfoHandle);
+ pkgmgrinfo_appinfo_destroy_appinfo(pAppInfoHandle);
}
+ SysLog(NID_APP, "app = [%ls] is installed.", appId.GetPointer());
+
return true;
}