Tizen开发 - Package Manage

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)检索已安装的包
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.");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值