1. Package Management
1)使用Tizen::App::Package::IPackageInstallationEventListener监听并回应package安装相关的event;
OnPackageInstallationCompleted()
OnPackageUninstallationCompleted()
OnPackageInstallationInProgress()
使用AddPackageInstallationEventListener()启动监听;
2)Managing Package Installation
InstallPackage() 和 UninstallPackage()可以异步地安装和卸载package,并能够监听安装和卸载过程中的event;
这里的监听使用Tizen::App::Package::IPackageInstallationResponseListener 的
OnPackageInstallationResponseReceived()
OnPackageInstallationInProgressResponseReceived()
OnPackageUninstallationResponseReceived()
对以上两种监听的理解是第二种监听只监听自己要安装的包的安装event,而第一种监听方式是对所有的包。
3)检索已安装的包
2. Package Filter
3. Package App Filter
1)使用 package app filter
2) 使用带metadata的package app filter
1)使用Tizen::App::Package::IPackageInstallationEventListener监听并回应package安装相关的event;
OnPackageInstallationCompleted()
OnPackageUninstallationCompleted()
OnPackageInstallationInProgress()
使用AddPackageInstallationEventListener()启动监听;
2)Managing Package Installation
InstallPackage() 和 UninstallPackage()可以异步地安装和卸载package,并能够监听安装和卸载过程中的event;
这里的监听使用Tizen::App::Package::IPackageInstallationResponseListener 的
OnPackageInstallationResponseReceived()
OnPackageInstallationInProgressResponseReceived()
OnPackageUninstallationResponseReceived()
对以上两种监听的理解是第二种监听只监听自己要安装的包的安装event,而第一种监听方式是对所有的包。
3)检索已安装的包
MyAppClass::GetPackageInformation()
{
PackageManager* pPackageManager = PackageManager::GetInstance();
IList* pPackageInfoList = pPackageManager->GetPackageInfoListN();
int packageInfoCount = pPackageInfoList->GetCount();
for (int i = 0; i < packageListCount; i++)
{
// PackageInfo class instance
PackageInfo* pPackageInfo = static_cast< PackageInfo* >(pPackageInfoList->GetAt(i));
// Retrieve the package ID
String packageId = pPackageInfo->GetId();
IList* pPackageAppInfoList = pPackageInfo->GetPackageAppInfoListN();
int packageAppInfoCount = pPackageAppInfoList->GetCount();
for (int j = 0; j < packageAppInfoCount; j++)
{
// PackageAppInfo class instance
PackageAppInfo* pPackageAppInfo = static_cast< pPackageAppInfo* >(pPackageAppInfoList->GetAt(i));
// Retrieve the application display name
if (pPackageAppInfo->GetMenuIconVisible() == true)
{
String name = pPackageInfo->GetAppDisplayName();
}
}
}
}
2. Package Filter
HashMap packageFilterMap;
packageFilterMap.Construct();
String* pKey = new String("http://tizen.org/package/downloaded");
Boolean* pValue = new Boolean(false);
result r = packageFilterMap.Add(pKey, pValue);
IList* pList = pMgr->GetPackageInfoListN(packageFilterMap);
if(pList)
{
for (int i = 0; i < pList->GetCount(); i++)
{
PackageInfo* pPackageInfo = dynamic_cast <PackageInfo*>(pList->GetAt(i));
if (pPackageInfo)
{
AppLog("[%d]-------------------------------------------------------", i+1);
AppLog("Id [%ls]", pPackageInfo->GetId().GetPointer());
AppLog("Name [%ls]", pPackageInfo->GetDisplayName().GetPointer());
}
}
}
3. Package App Filter
1)使用 package app filter
PackageManager* pMgr = PackageManager::GetInstance();
HashMap packageFilterMap;
packageFilterMap.Construct();
String* pKey = new String("http://tizen.org/package/downloaded");
Boolean* pValue = new Boolean(true);
result r = packageFilterMap.Add(pKey, pValue);
HashMap packageAppFilterMap;
packageAppFilterMap.Construct();
String* pKey2 = new String("http://tizen.org/package/app/menuiconvisible");
Boolean* pValue2 = new Boolean(true);
r = packageAppFilterMap.Add(pKey2, pValue2);
IList* pList = pMgr->GetPackageAppInfoListN(packageFilterMap, packageAppFilterMap);
if (pList)
{
for (int i = 0; i < pList->GetCount(); i++)
{
PackageAppInfo* pPackageAppInfo = dynamic_cast <PackageAppInfo*>(pList->GetAt(i));
if (pPackageAppInfo)
{
AppLog("[%d]-------------------------------------------------------", i+1);
AppLog("Id [%ls]", pPackageAppInfo->GetAppId().GetPointer());
AppLog("Name [%ls]", pPackageAppInfo->GetAppName().GetPointer);
}
}
}
else
{
AppLog("pList is null.");
}
2) 使用带metadata的package app filter
HashMap packageAppFilterMap;
packageAppFilterMap.Construct();
String* pKey = new String("metadata_key");
String* pValue = new String("metadata_value");
String* pKey2 = new String("http://tizen.org/package/app/menuiconvisible");
Boolean* pValue2 = new Boolean(false);
packageAppFilterMap.Add(pKey, pValue);
packageAppFilterMap.Add(pKey2, pValue2);
IList* pList = pMgr->GetPackageAppInfoListN(packageAppFilterMap);
if (pList)
{
for (int i = 0; i < pList->GetCount(); i++)
{
PackageAppInfo* pPackageAppInfo = dynamic_cast <PackageAppInfo*>(pList->GetAt(i));
if (pPackageAppInfo)
{
AppLog("[%d]-------------------------------------------------------", i+1);
AppLog("Id [%ls]", pPackageAppInfo->GetAppId().GetPointer());
AppLog("Name [%ls]", pPackageAppInfo->GetAppName().GetPointer);
}
else
{
AppLog("pPackageAppInfo is null.");
}
}
delete pList;
}
else
{
AppLog("pList is null.");
}