/**@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( ) {}, };