Description
The GetInstalledPackageByName method returns information about the package specified by its name.
Declaration
PackageManagerObj.GetInstalledPackageByName(Name)
| PackageManagerObj | An expression, variable or parameter that specifies a reference to a PackageManager object | |||
| Name | [in] | Required | String | |
| Result | PackageObject | |||
Applies To
The method is applied to the following object:
Parameters
The method has the following parameter:
Name
Specifies the name of the desired package. The name should be specified in a Java-style notation, as it is described in the AndroidManifest.xml file. For instance: com.example.myapp.
Result Value
The PackageObject object that describes the found package. If no package with the specified name was found among the packages installed on the device, the method posts a warning to the test log and returns an empty object (null in JavaScript, JScript, C#Script and C++Script, None in Python, Nothing in VBScript, nil in DelphiScript).
Example
The following code checks whether a package was already installed on the device. On success it posts package description to the test log, otherwise it deploys the needed package:
JavaScript
function CheckAndDeploy()
 {
   Mobile.SetCurrent("Nexus 7");
   let PackManagerObj = Mobile.Device().PackageManager;
   // Retrieve package info from the device
   let PackObj = PackManagerObj.GetInstalledPackageByName("com.example.myapp");
   // Verify if the package was found
   if (!strictEqual(PackObj, null))
    {
      // Display the package information
      Log.Message("The package name is: " + PackObj.Name); 
      Log.Message("The package local path is: " + PackObj.PCPath); 
      Log.Message("The package device path is: " + PackObj.DevicePath);
    }
   else
    {
      // Deploy the package
      PackObj = PackManagerObj.GetPackageFromAPK("D:\\Work\\MyPackage.apk");
      PackManagerObj.InstallPackage(PackObj);
    }  
} 
JScript
function CheckAndDeploy()
 {
   Mobile.SetCurrent("Nexus 7");
   var PackManagerObj = Mobile.Device.PackageManager;
   // Retrieve package info from the device
   var PackObj = PackManagerObj.GetInstalledPackageByName("com.example.myapp");
   // Verify if the package was found
   if (PackObj != null)
    {
      // Display the package information
      Log.Message("The package name is: " + PackObj.Name); 
      Log.Message("The package local path is: " + PackObj.PCPath); 
      Log.Message("The package device path is: " + PackObj.DevicePath);
    }
   else
    {
      // Deploy the package
      PackObj = PackManagerObj.GetPackageFromAPK("D:\\Work\\MyPackage.apk");
      PackManagerObj.InstallPackage(PackObj);
    }  
} 
Python
def CheckAndDeploy():
  Mobile.SetCurrent("Nexus 7")
  PackManagerObj = Mobile.Device().PackageManager
  # Retrieve package info from the device
  PackObj = PackManagerObj.GetInstalledPackageByName("com.example.myapp")
  # Verify if the package was found
  if (PackObj != None):
    # Display the package information
    Log.Message("The package name is: " + PackObj.Name)
    Log.Message("The package local path is: " + PackObj.PCPath) 
    Log.Message("The package device path is: " + PackObj.DevicePath)
  else:
    # Deploy the package
    PackObj = PackManagerObj.GetPackageFromAPK("D:\\Work\\MyPackage.apk")
    PackManagerObj.InstallPackage(PackObj)VBScript
Sub CheckAndDeploy 
  Call Mobile.SetCurrent("Nexus 7")
   Set PackManagerObj = Mobile.Device.PackageManager
   ' Retrieve package info from the device
   Set PackObj = PackManagerObj.GetInstalledPackageByName("com.example.myapp")
   ' Verify if the package was found
   If Not PackObj Is Nothing Then
     ' Display the package information
     Call Log.Message("The package name is: " + PackObj.Name) 
     Call Log.Message("The package local path is: " + PackObj.PCPath) 
     Call Log.Message("The package device path is: " + PackObj.DevicePath)
   Else
     ' Deploy the package
     Set PackObj = PackManagerObj.GetPackageFromAPK("D:\Work\MyPackage.apk")
     PackManagerObj.InstallPackage(PackObj)
   End If
End Sub
DelphiScript
procedure CheckAndDeploy;
var PackManagerObj, PackObj;
begin
   Mobile.SetCurrent('Nexus 7');
   PackManagerObj := Mobile.Device.PackageManager;
   // Retrieve package info from the device
   PackObj := PackManagerObj.GetInstalledPackageByName('com.example.myapp');
   // Verify if the package was found
   if (PackObj <> nil) then
    begin
      // Display the package information
      Log.Message('The package name is: ' + PackObj.Name); 
      Log.Message('The package local path is: ' + PackObj.PCPath); 
      Log.Message('The package device path is: ' + PackObj.DevicePath);
    end
   else
    begin
      // Deploy the package
      PackObj := PackManagerObj.GetPackageFromAPK('D:\Work\MyPackage.apk');
      PackManagerObj.InstallPackage(PackObj);
    end;
end;
C++Script, C#Script
function CheckAndDeploy()
 {
   Mobile["SetCurrent"]("Nexus 7");
   var PackManagerObj = Mobile["Device"]["PackageManager"];
   // Retrieve package info from the device
   var PackObj = PackManagerObj["GetInstalledPackageByName"]("com.example.myapp");
   // Verify if the package was found
   if (PackObj != null)
    {
      // Display the package information
      Log["Message"]("The package name is: " + PackObj["Name"]); 
      Log["Message"]("The package local path is: " + PackObj["PCPath"]); 
      Log["Message"]("The package device path is: " + PackObj["DevicePath"]);
    }
   else
    {
      // Deploy the package
      PackObj = PackManagerObj["GetPackageFromAPK"]("D:\\Work\\MyPackage.apk");
      PackManagerObj["InstallPackage"](PackObj);
    }  
}
