Class AppControl
Definition
- Namespace:
- Tizen.Applications
- Assembly:
- Tizen.Applications.Common.dll
Represents the control message to exchange between applications.
C#Copypublic class AppControl
- Inheritance
-
objectAppControl
- Derived
Examples
Copypublic class AppControlExample : UIApplication { /// ... protected override void OnAppControlReceived(AppControlReceivedEventArgs e) { AppControl appControl = new AppControl(); appControl.ApplicationId = "org.tizen.calculator"; AppControl.SendLaunchRequest(appControl, (launchRequest, replyRequest, result) => { // ... }); } }
Constructors
Declaration
C#Copypublic AppControl()
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | Thrown when failed to create the AppControl handle. |
Declaration
C#Copypublic AppControl(bool enableAppStartedResultEvent)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | enableAppStartedResultEvent | The flag value to receive an additional launch result event on the launch request. |
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | Thrown when failed to create the AppControl handle. |
AppControl(SafeAppControlHandle)
Initializes the instance of the AppControl class with the SafeAppControlHandle.
Declaration
C#Copypublic AppControl(SafeAppControlHandle handle)
Parameters
| Type | Name | Description |
|---|---|---|
| SafeAppControlHandle | handle |
Properties
Declaration
C#Copypublic string ApplicationId { get; set; }
Property Value
| Type | Description |
|---|---|
| string | (if the application ID is null for setter, it clears the previous value.) |
Examples
CopyAppControl appControl = new AppControl(); appControl.ApplicationId = "org.tizen.calculator"; Log.Debug(LogTag, "ApplicationId: " + appControl.ApplicationId);
Declaration
C#Copypublic string Category { get; set; }
Property Value
| Type | Description |
|---|---|
| string | (if the category is null for setter, it clears the previous value.) |
Declaration
C#Copypublic string ComponentId { get; set; }
Property Value
| Type | Description |
|---|---|
| string | (if the component ID is null for setter, it clears the previous value.) From Tizen 5.5, a new application model is supported that is component-based application. This property is for launching component-based application. If it's not set, the main component of component-based application will be launched. If the target app is not component-based application, setting property is meaningless. |
Examples
CopyAppControl appControl = new AppControl(); appControl.ApplicationId = "org.tizen.component-based-app"; // component-based application appControl.ComponentId = "org.tizen.frame-component"; AppControl.SendLaunchRequest(appControl);
Declaration
C#Copypublic AppControl.ExtraDataCollection ExtraData { get; }
Property Value
| Type | Description |
|---|---|
| AppControl.ExtraDataCollection | Extra data for communication between AppControls. |
Examples
CopyAppControl appControl = new AppControl(); appControl.ExtraData.Add("key", "value"); ...
Declaration
C#Copypublic AppControlLaunchMode LaunchMode { get; set; }
Property Value
| Type | Description |
|---|---|
| AppControlLaunchMode | Although, LaunchMode were set as AppControlLaunchMode.Group, the callee application would be launched as a single mode if the manifest file of callee application defined the launch mode as "single". This property can just set the preference of the caller application to launch an application. Sub-applications, which were launched as a group mode always have own process. Since Tizen 3.0, if launch mode is not set in the caller application control, this property returns the AppControlLaunchMode.Single launch mode. |
Examples
CopyAppControl appControl = new AppControl(); appControl.LaunchMode = AppControlLaunchMode.Group;
Declaration
C#Copypublic string Mime { get; set; }
Property Value
| Type | Description |
|---|---|
| string | (if the mime is null for setter, it clears the previous value.) |
Examples
CopyAppControl appControl = new AppControl(); appControl.Mime = "image/jpg"; Log.Debug(LogTag, "Mime: " + appControl.Mime);
Declaration
C#Copypublic string Operation { get; set; }
Property Value
| Type | Description |
|---|---|
| string | The operation is the mandatory information for the launch request. If the operation is not specified, AppControlOperations.Default is used for the launch request. If the operation is AppControlOperations.Default, the package information is mandatory to explicitly launch the application. (if the operation is null for setter, it clears the previous value.) |
Examples
CopyAppControl appControl = new AppControl(); appControl.Operation = AppControlOperations.Default; Log.Debug(LogTag, "Operation: " + appControl.Operation);
Declaration
C#Copypublic SafeAppControlHandle SafeAppControlHandle { get; }
Property Value
| Type | Description |
|---|---|
| SafeAppControlHandle |
Declaration
C#Copypublic string Uri { get; set; }
Property Value
| Type | Description |
|---|---|
| string | Since Tizen 2.4, if the parameter 'uri' is started with 'file://' and it is a regular file in this application's data path, which can be obtained by property DataPath in ApplicationInfo class, it will be shared to the callee application. Framework will grant a temporary permission to the callee application for this file and revoke it when the callee application is terminated. The callee application can just read it. (if the uri is null for setter, it clears the previous value.) |
Examples
Copypublic class AppControlExample : UIApplication { ... protected override void OnAppControlReceived(AppControlReceivedEventArgs e) { ... AppControl appControl = new AppControl(); appContrl.Uri = this.ApplicationInfo.DataPath + "image.jpg"; Log.Debug(LogTag, "Set Uri: " + appControl.Uri); } }
Methods
GetMatchedApplicationIds(AppControl)
Retrieves all applications that can be launched to handle the given app_control request.
Declaration
C#Copypublic static IEnumerable<string> GetMatchedApplicationIds(AppControl control)
Parameters
| Type | Name | Description |
|---|---|---|
| AppControl | control | The AppControl. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<T><string> | ApplicationIds. |
Examples
CopyIEnumerable<string> applicationIds = AppControl.GetMatchedApplicationIds(control); if (applicationIds != null) { foreach (string id in applicationIds) { // ... } }
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | Thrown when failed because of an invalid parameter. |
Declaration
C#Copypublic static void SendLaunchRequest(AppControl launchRequest, AppControlReplyCallback replyAfterLaunching)
Parameters
| Type | Name | Description |
|---|---|---|
| AppControl | launchRequest | The AppControl. |
| AppControlReplyCallback | replyAfterLaunching | The callback function to be called when the reply is delivered. |
Remarks
The operation is mandatory information for the launch request.
If the operation is not specified, AppControlOperations.Default is used by default.
If the operation is AppControlOperations.Default, the application ID is mandatory to explicitly launch the application.
Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform.
Also, implicit launch requests are NOT delivered to service applications since 2.4.
To launch a service application, an explicit launch request with the application ID given by property ApplicationId MUST be sent.
Examples
CopyAppControl appControl = new AppControl(); appControl.ApplicationId = "org.tizen.calculator"; AppControl.SendLaunchRequest(appControl, (launchRequest, replyRequest, result) => { // ... });
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Thrown when failed because of the argument is invalid. |
| AppNotFoundException | Thrown when the application to run is not found. |
| LaunchFailedException | Thrown when the request failed to launch the application. |
| LaunchRejectedException | Thrown when the launch request is rejected. |
| OutOfMemoryException | Thrown when the memory is insufficient. |
| PermissionDeniedException | Thrown when the permission is denied. |
| System.TimeoutException | Thrown when failed because of timeout. |
Declaration
C#Copypublic static void SendLaunchRequest(AppControl launchRequest)
Parameters
| Type | Name | Description |
|---|---|---|
| AppControl | launchRequest | The AppControl. |
Remarks
The operation is mandatory information for the launch request.
If the operation is not specified, AppControlOperations.Default is used by default.
If the operation is AppControlOperations.Default, the application ID is mandatory to explicitly launch the application.
Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform.
Also, implicit launch requests are NOT delivered to service applications since 2.4.
To launch a service application, an explicit launch request with the application ID given by property ApplicationId MUST be sent.
Examples
CopyAppControl appControl = new AppControl(); appControl.ApplicationId = "org.tizen.calculator"; AppControl.SendLaunchRequest(appControl);
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | Thrown when failed because of a null argument. |
| System.InvalidOperationException | Thrown when failed because of an invalid operation. |
| System.TimeoutException | Thrown when failed because of timeout. |
SendLaunchRequestAsync(AppControl, AppControlReplyCallback)
Sends the launch request asynchronously.
Declaration
C#Copypublic static Task<AppControlResult> SendLaunchRequestAsync(AppControl launchRequest, AppControlReplyCallback replyAfterLaunching)
Parameters
| Type | Name | Description |
|---|---|---|
| AppControl | launchRequest | The AppControl. |
| AppControlReplyCallback | replyAfterLaunching | The callback function to be called when the reply is delivered. |
Returns
| Type | Description |
|---|---|
| System.Threading.Tasks.Task<TResult><AppControlResult> | A task with the result of the launch request. |
Remarks
The operation is mandatory information for the launch request.
If the operation is not specified, AppControlOperations.Default is used by default.
If the operation is AppControlOperations.Default, the application ID is mandatory to explicitly launch the application.
Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform.
Also, implicit launch requests are NOT delivered to service applications since 2.4.
To launch a service application, an explicit launch request with the application ID given by property ApplicationId MUST be sent.
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Thrown when failed because of the argument is invalid. |
| AppNotFoundException | Thrown when the application to run is not found. |
| LaunchRejectedException | Thrown when the launch request is rejected. |
SendTerminateRequest(AppControl)
Sends the terminate request to the application that is launched by AppControl.
Declaration
C#Copypublic static void SendTerminateRequest(AppControl terminateRequest)
Parameters
| Type | Name | Description |
|---|---|---|
| AppControl | terminateRequest | The AppControl. |
Remarks
You are not allowed to terminate other general applications using this API. This API can be used to terminate sub-applications, which were launched as a group mode by the caller application. Once the callee application is being terminated by this API, other applications, which were launched by the callee application as a group mode will be terminated as well.
Examples
CopyAppControl terminateRequest = new AppControl(); terminateRequest.ApplicationId = "org.tizen.calculator"; AppControl.SendTerminateRequest(terminateRequest);
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Thrown when failed because of the argument is invalid. |
| System.InvalidOperationException | Thrown when failed because of an invalid operation. |
| System.TimeoutException | Thrown when failed because of timeout. |