//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
* @remarks The specific error code can be accessed using the GetLastResult() method.
* @remarks %Tizen platform defines platform-defined alias for application ID and this aliased application ID
* can be used to find the AppControl. For more information, see
- * <a href="../org.tizen.native.appprogramming/html/guide/app/app_control.htm">here</a>.
+ * <a href="../org.tizen.native.appprogramming/html/guide/app/app_controls.htm">here</a>.
*
* The following example demonstrates how to use the %FindAppControlN() method to find the application control.
*
* @code
- * ArrayList dataList(SingleObjectDeleter);
- * dataList.Construct();
- * dataList.Add(new String(L"tel:1234567900"));
- * dataList.Add(new String(L"type:voice"));
+ * String telUri = L"tel:12345678900";
*
- * AppControl* pAc = AppManager::FindAppControlN(L"tizen.phone", L"http://tizen.org/appcontrol/operation/call");
- * pAc->Start(&dataList, null);
+ * AppControl* pAc = AppManager::FindAppControlN(L"tizen.phone", L"http://tizen.org/appcontrol/operation/dial");
+ * pAc->Start(&telUri, null, null, null);
* @endcode
*/
static AppControl* FindAppControlN(const AppId& appId, const Tizen::Base::String& operationId);
* @exception E_SYSTEM A system error has occurred. @n
* Either the file operation or the DB operation has failed.
* @remarks The specific error code can be accessed using the GetLastResult() method.
- * @remarks For the delivered launch arguments, see App::GetAppArgumentListN().
*/
static Tizen::Base::Collection::IList* FindAppControlsN(const Tizen::Base::String* pOperationId, const Tizen::Base::String* pCategory, const Tizen::Base::String* pDataType, const Tizen::Base::String* pUriPattern);
* @exception E_SUCCESS The method is successful.
* @exception E_APP_NOT_INSTALLED The expected shared directory cannot be found
* because the application specified with @c appId cannot be installed.
- * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @remarks
+ * - The returned path can be invalid when the application with specified with @c appId is uninstalled.
+ * - The specific error code can be accessed using the GetLastResult() method.
*/
static Tizen::Base::String GetAppSharedPath(const AppId& appId);
*
* @since 2.0
* @privlevel partner
- * @privilege %http://tizen.org/privilege/application.kill
+ * @privilege %http://tizen.org/privilege/appmanager.kill @n
+ * (%http://tizen.org/privilege/application.kill is deprecated.)
*
* @return An error code
* @param[in] appId The application's ID to execute
* @since 2.0
* @privlevel public
* @privilege %http://tizen.org/privilege/application.launch
+ * @feature %http://tizen.org/feature/network.nfc for L"NFC='command'" or %http://tizen.org/feature/usb.accessory for "Serial='command'" in the value of @c condition
*
* @return An error code
* @param[in] condition The launch condition for the application @n
<tr><td>L"DueTime='mm/dd/yyyy hh:mm:ss' LaunchPeriod='mm'"</td>
<td>The specific condition is the time period after due time.</td></tr>
<tr><td>L"WeeklyTime='EEE HH:mm:ss'"</td>
- <td>The specified condition is a day of week with specific time to launch an application for every week. For multiple description, "," delimiter can be used like following example.<br>i"Mon 09:00:00, Tue 09:00:00, Wed 09:00:00, Thu 09:00:00, Fir 09:00:00"<br> The format of a day of week is support following string only.<br>Mon: Monday<br>Tue: Tuesday<br>Wed: Wednesday<br>Thu: Thursday<br>Fri: Friday<br>Sat: Saturday<br>Sun: Sunday</td></tr>
+ <td>The specified condition is a day of a week with a specific time at which the application is launched on a weekly basis. For multiple descriptions, "," delimiter can be used as shown in the following example: <br>i"'Mon 09:00:00', 'Tue 09:00:00', 'Wed 09:00:00', 'Thu 09:00:00', 'Fri 09:00:00'"<br> To specify the day of the week, it must be in one of the following supported string format: <br>Mon: Monday<br>Tue: Tuesday<br>Wed: Wednesday<br>Thu: Thursday<br>Fri: Friday<br>Sat: Saturday<br>Sun: Sunday</td></tr>
<tr><td>L"Serial='command'"</td><td>The specified condition is a serial
communication input command.</td></tr>
<tr><td>L"NFC='command'"</td><td>The specified condition is a Near Field Communication (NFC) tag that has the NFC Data Exchange Format (NDEF) data.
* @exception E_MAX_EXCEEDED The size of @c pArguments has exceeded the maximum limit.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature. For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>. @b Since: @b 2.1
*
* @remarks When the registered application is about to be launched, the registered launch condition and arguments are given as parameters to IAppLaunchConditionEventListener::OnAppLaunchConditionMetN().
* @remarks The newly introduced launch condition does not work on the previous SDK version and the E_INVALID_CONDITION exception is returned.
* @remarks The launch period requires more consideration because an inappropriate short period value may lead
* to an adverse effect on the device battery.
* @remarks For the NFC launch condition, the detected NDEF message can be acquired using the @c pExtraData parameter of the %IAppLaunchConditionEventListener::OnAppLaunchConditionMetN() method.
+ * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
* @see UnregisterAppLaunch()
* @see IsAppLaunchRegistered()
- * @see LaunchApplication()
+ * @see LaunchApplication(const AppId&, LaunchOption);
* @see Tizen::Base::DateTime::ToString()
* @see Tizen::Io::SerialPort
*
* @privilege %http://tizen.org/privilege/application.launch
*
* @return An error code
- * @exception E_SUCCESS The method is successful.
+ * @exception E_SUCCESS Either of the following conditions has occurred:
+ * - The method is successful.
+ * - There is no registered launch condition.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
- * @remarks E_SUCCESS An error occurs when there is no registered launch condition.
* @see RegisterAppLaunch()
* @see IsAppLaunchRegistered()
*/
* @since 2.0
* @privlevel partner
* @privilege %http://tizen.org/privilege/appmanager.launch
+ * @feature %http://tizen.org/feature/network.nfc for L"NFC='command'" or %http://tizen.org/feature/usb.accessory for L"Serial='command'" in the value of @c condition
*
* @return An error code
* @param[in] appId The ID of the application registered for launch
<td>The specified condition is the local due time.</td></tr>
<tr><td>L"DueTime='mm/dd/yyyy hh:mm:ss' LaunchPeriod='mm'"</td>
<td>The specific condition is the time period after due time.</td></tr>
+ <tr><td>L"WeeklyTime='EEE HH:mm:ss'"</td>
+ <td>The specified condition is a day of a week with a specific time at which the application is launched on a weekly basis. For multiple descriptions, "," delimiter can be used as shown in the following example: <br>i"'Mon 09:00:00', 'Tue 09:00:00', 'Wed 09:00:00', 'Thu 09:00:00', 'Fri 09:00:00'"<br> To specify the day of the week, it must be in one of the following supported string format: <br>Mon: Monday<br>Tue: Tuesday<br>Wed: Wednesday<br>Thu: Thursday<br>Fri: Friday<br>Sat: Saturday<br>Sun: Sunday</td></tr>
<tr><td>L"Serial='command'"</td><td>The specified condition is a serial
communication input command.</td></tr>
<tr><td>L"NFC='command'"</td><td>The specified condition is a Near Field Communication (NFC) tag that has the NFC Data Exchange Format (NDEF) data.
* @exception E_MAX_EXCEEDED The size of @c pArguments has exceeded the maximum limit.
* @exception E_SYSTEM A system error has occurred.
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature. For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>. @b Since: @b 2.1
*
* @remarks When the registered application is about to be launched, the registered launch condition and arguments are given as parameters to IAppLaunchConditionEventListener::OnAppLaunchConditionMetN().
* @remarks The newly introduced launch condition does not work on the previous SDK version and the @c E_INVALID_CONDITION exception is returned.
* @remarks The launch period requires more consideration because an inappropriate short period value may lead
* to an adverse effect on the device battery.
* @remarks For the NFC launch condition, the detected NDEF message can be acquired using the @c pExtraData parameter of the %IAppLaunchConditionEventListener::OnAppLaunchConditionMetN() method.
+ * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
* @see UnregisterAppLaunch()
* @see IsAppLaunchRegistered()
- * @see LaunchApplication()
+ * @see LaunchApplication(const AppId&, LaunchOption);
* @see IAppLaunchConditionEventListener::OnAppLaunchConditionMetN()
* @see Tizen::Base::DateTime::ToString()
* @see Tizen::Io::SerialPort
* @exception E_SUCCESS The method is successful.
* @exception E_OBJ_ALREADY_EXIST The listener is already set.
* @exception E_SYSTEM A system error has occurred.
- * @see IAppCheckpointEventListener
*
*/
result SetCheckpointEventListener(IAppCheckpointEventListener& listener);
* @remarks Active application is the top most window with focus.
* @see GetActiveApp()
* @see RemoveActiveAppEventListener()
- * @see IActiveAppEventListener
*/
result AddActiveAppEventListener(IActiveAppEventListener& listener);
* @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
* @see GetActiveApp()
* @see AddActiveAppEventListener()
- * @see IActiveAppEventListener
*/
result RemoveActiveAppEventListener(IActiveAppEventListener& listener);
*/
result GetActiveApp(AppId& appId);
+ /**
+ * Checks whether the specified application is declared as preferred application for any AppControl resolution
+ *
+ * @since 2.2
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/appmanager.setting
+ *
+ * @return @c true if the application is running, @n
+ * else @c false
+ * @param[in] appId Application ID
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ * @exception E_APP_NOT_INSTALLED The specified application is not installed.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ * @remarks For more information on AppControl resolution, see <a href="../org.tizen.native.appprogramming/html/guide/app/app_controls.htm">Application Controls</a>.
+ */
+ bool IsUserPreferredAppForAppControlResolution(const AppId& appId) const;
+
+ /**
+ * Clear user preference for all AppControl resolutions on the specified application.
+ *
+ * @since 2.2
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/appmanager.setting
+ *
+ * @return An error code
+ * @param[in] appId The preferred application's ID
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ * @exception E_APP_NOT_INSTALLED The specified application is not installed.
+ * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
+ * @remarks For more information on AppControl resolution, see <a href="../org.tizen.native.appprogramming/html/guide/app/app_controls.htm">Application Controls</a>.
+ */
+ result ClearUserPreferenceForAppControlResolution(const AppId& appId);
+
private:
/**
* This default constructor is intentionally declared as private to implement the %Singleton semantic.