[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void ResultCallback(IntPtr request, int result, IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool DefaultApplicationCallback(string applicationId, IntPtr userData);
+
internal enum ErrorCode
{
None = Tizen.Internals.Errors.ErrorCode.None,
[DllImport(Libraries.AppControl, EntryPoint = "app_control_send_launch_request_with_timeout")]
internal static extern ErrorCode SendLaunchRequestWithTimeout(SafeAppControlHandle handle, uint timeout, ReplyCallback callback, IntPtr userData);
+
+ [DllImport(Libraries.AppControl, EntryPoint = "app_control_foreach_default_application")]
+ internal static extern ErrorCode ForeachDefaultApplication(DefaultApplicationCallback callback, IntPtr userData);
+
}
}
}
/// <summary>
+ /// Gets all default applications.
+ /// </summary>
+ /// <returns>ApplicationIds.</returns>
+ /// <exception cref="InvalidOperationException">Thrown when failed because of an invalid operation.</exception>
+ /// <example>
+ /// <code>
+ /// IEnumerable<string> applicationIds = AppControl.GetDefaultApplicationIds();
+ /// if (applicationIds != null)
+ /// {
+ /// foreach (string id in applicationIds)
+ /// {
+ /// // ...
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ /// <since_tizen> 11 </since_tizen>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static IEnumerable<string> GetDefaultApplicationIds()
+ {
+ List<string> ids = new List<string>();
+ Interop.AppControl.DefaultApplicationCallback callback = (applicationId, userData) =>
+ {
+ if (applicationId == null)
+ {
+ return false;
+ }
+
+ ids.Add(applicationId);
+ return true;
+ };
+
+ Interop.AppControl.ErrorCode err = Interop.AppControl.ForeachDefaultApplication(callback, IntPtr.Zero);
+ if (err != Interop.AppControl.ErrorCode.None)
+ {
+ throw new InvalidOperationException("Failed to get default application Ids. err = " + err);
+ }
+
+ return ids;
+ }
+
+ /// <summary>
/// Class for extra data.
/// </summary>
/// <since_tizen> 3 </since_tizen>