/**@class android.content.pm.CrossProfileApps
@extends java.lang.Object

 Class for handling cross profile operations. Apps can use this class to interact with its
 instance in any profile that is in {@link #getTargetUserProfiles}(). For example, app can
 use this class to start its main activity in managed profile.
*/
var CrossProfileApps = {

/**Starts the specified main activity of the caller package in the specified profile.
@param {Object {ComponentName}} component The ComponentName of the activity to launch, it must be exported and has
        action {@link android.content.Intent#ACTION_MAIN}, category
        {@link android.content.Intent#CATEGORY_LAUNCHER}. Otherwise, SecurityException will
        be thrown.
@param {Object {UserHandle}} targetUser The UserHandle of the profile, must be one of the users returned by
        {@link #getTargetUserProfiles()}, otherwise a {@link SecurityException} will
        be thrown.
*/
startMainActivity : function(  ) {},

/**Starts the specified activity of the caller package in the specified profile. Unlike
 {@link #startMainActivity}, this can start any activity of the caller package, not just
 the main activity.
 The caller must have the {@link android.Manifest.permission#INTERACT_ACROSS_PROFILES}
 permission and both the caller and target user profiles must be in the same profile group.
@param {Object {ComponentName}} component The ComponentName of the activity to launch. It must be exported.
@param {Object {UserHandle}} targetUser The UserHandle of the profile, must be one of the users returned by
        {@link #getTargetUserProfiles()}, otherwise a {@link SecurityException} will
        be thrown.
@hide 
*/
startActivity : function(  ) {},

/**Return a list of user profiles that that the caller can use when calling other APIs in this
 class.
 <p>
 A user profile would be considered as a valid target user profile, provided that:
 <ul>
 <li>It gets caller app installed</li>
 <li>It is not equal to the calling user</li>
 <li>It is in the same profile group of calling user profile</li>
 <li>It is enabled</li>
 </ul>
@see UserManager#getUserProfiles()
*/
getTargetUserProfiles : function(  ) {},

/**Return a label that calling app can show to user for the semantic of profile switching --
 launching its own activity in specified user profile. For example, it may return
 "Switch to work" if the given user handle is the managed profile one.
@param {Object {UserHandle}} userHandle The UserHandle of the target profile, must be one of the users returned by
        {@link #getTargetUserProfiles()}, otherwise a {@link SecurityException} will
        be thrown.
@return {Object {java.lang.CharSequence}} a label that calling app can show user for the semantic of launching its own
         activity in the specified user profile.
@see #startMainActivity(ComponentName, UserHandle)
*/
getProfileSwitchingLabel : function(  ) {},

/**Return a drawable that calling app can show to user for the semantic of profile switching --
 launching its own activity in specified user profile. For example, it may return a briefcase
 icon if the given user handle is the managed profile one.
@param {Object {UserHandle}} userHandle The UserHandle of the target profile, must be one of the users returned by
        {@link #getTargetUserProfiles()}, otherwise a {@link SecurityException} will
        be thrown.
@return {Object {android.graphics.drawable.Drawable}} an icon that calling app can show user for the semantic of launching its own
         activity in specified user profile.
@see #startMainActivity(ComponentName, UserHandle)
*/
getProfileSwitchingIconDrawable : function(  ) {},


};