Package Manager
PUBLISHED
The package manager is used to retrieve detailed information on the installed packages on the device. This information includes the package name, label, path to the icon image, version, type, and installed storage.
The main features of the Tizen.Applications.PackageManager
class include:
- Retrieving information for all installed packages
Use the
GetPackages()
method of theTizen.Applications.PackageManager
class to retrieve the package information for all installed packages. The method returns anIEnumerable<Package>
object with the package information. - Retrieving individual package information
To retrieve package information, get the Tizen.Applications.Package [1] object using the
GetPackage()
method of theTizen.Applications.PackageManager
class. - Monitoring changes
You can monitor package events, such as installation, uninstallation, and updates.
Prerequisites
To enable your application to use the package management functionality:
-
To use the Tizen.Applications.PackageManager [2] class, the application has to request permission by adding the following privilege to the
tizen-manifest.xml
file:<privileges> <privilege>http://tizen.org/privilege/packagemanager.info</privilege> </privileges>
-
To use the methods and properties of the
Tizen.Applications.PackageManager
class, include the Tizen.Applications [3] namespace in your application:using Tizen.Applications;
Retrieving All Package Information
To retrieve all package information for installed packages:
- Retrieve all package information with the
GetPackages()
method of the Tizen.Applications.PackageManager [2] class:IEnumerable<Package> packageList = PackageManager.GetPackages();
- Iterate through the returned list to access information about each Tizen.Applications.Package [1] object:
foreach (Package package in packageList) { Log.Debug(LogTag, "pkgid: " + package.Id); Log.Debug(LogTag, "label: " + package.Label); Log.Debug(LogTag, "icon: " + package.IconPath); Log.Debug(LogTag, "version: " + package.Version); Log.Debug(LogTag, "type: " + package.PackageType); Log.Debug(LogTag, "storage: " + package.InstalledStorageType); Log.Debug(LogTag, "system: " + package.IsSystemPackage); Log.Debug(LogTag, "removable: " + package.IsRemovable); Log.Debug(LogTag, "preload: " + package.IsPreloaded); }
Retrieving Specific Package Information
To get specific package information:
- Retrieve information for a specific package with the
GetPackage()
method of the Tizen.Applications.PackageManager [2] class:Package package = PackageManager.GetPackage("org.tizen.helloworld");
- Use the Tizen.Applications.Package [1] object returned by the
GetPackage()
method to access various package details:
/// Use package information Log.Debug(LogTag, "pkgid: " + package.Id); Log.Debug(LogTag, "label: " + package.Label); Log.Debug(LogTag, "icon: " + package.IconPath); Log.Debug(LogTag, "version: " + package.Version); Log.Debug(LogTag, "type: " + package.PackageType); Log.Debug(LogTag, "storage: " + package.InstalledStorageType); Log.Debug(LogTag, "system: " + package.IsSystemPackage); Log.Debug(LogTag, "removable: " + package.IsRemovable); Log.Debug(LogTag, "preload: " + package.IsPreloaded);
Monitoring Package Events
To detect package-related events, such as installation, uninstallation, and updates:
- Register event handlers for various events of the Tizen.Applications.PackageManager [2] class.
The following example registers event handlers for package installation, uninstallation, and update events:
PackageManager.InstallProgressChanged += new System.EventHandler<PackageManagerEventArgs>(InstallEventHandler); PackageManager.UninstallProgressChanged += new System.EventHandler<PackageManagerEventArgs>(UninstallEventHandler); PackageManager.UpdateProgressChanged += new System.EventHandler<PackageManagerEventArgs>(UpdateEventHandler);
- Define the event handlers. When the related event occurs, the event handler is triggered and you can get the event details from the Tizen.Applications.PackageManagerEventArgs [4] instance.
The following example implements the installation event handler:
void InstallEventHandler(object sender, PackageManagerEventArgs args) { Log.Debug(LogTag, "pkgId: " + args.PackageId); Log.Debug(LogTag, "pkgType:" + args.PackageType); Log.Debug(LogTag, "progress:" + args.Progress); Log.Debug(LogTag, "eventState:" + args.State); }