Projection via device

By setting projection and broadcast policies on the host device, determining projection availability based on the device context, and establishing a projection connection with the guest device in a locked state, the problems of data security and access control during the projection process of computing devices are solved, and secure data output and resource protection are achieved.

CN121764431APending Publication Date: 2026-03-31MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2017-03-27
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

When projecting between computing devices, especially when the host device is locked, how can we ensure data security, prevent unauthorized and malicious access, and allow guest devices to project?

Method used

By setting projection and broadcast policies on the host device, the system determines whether to broadcast projection availability based on the device context, establishes a projection connection with guest devices in a locked state, uses the projector module and projection service for data output, and restricts access to other functions of the host device.

Benefits of technology

It enables secure data output from the host device while it is locked, preventing unauthorized access, while allowing guest devices to project data, thus protecting the host device's resources from malicious interference.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121764431A_ABST
    Figure CN121764431A_ABST
Patent Text Reader

Abstract

Techniques for projecting via a device are described. According to various embodiments, the techniques described herein enable a locked host device to output data projected from another device while the host device remains in a locked state. In at least some implementations, a device context for a host device (locked or unlocked) may be considered in determining whether to broadcast availability of received projected content.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of patent application No. 201780020651.9 filed on March 27, 2017, entitled "Projection via a Device". Background Technology

[0002] Today's computing devices offer users a wide variety of functions to perform a wide range of tasks. For example, computing devices typically utilize different applications and services (hereinafter referred to as "applications") to enable various tasks to be performed, such as productivity tasks, web browsing, content editing, etc. Furthermore, users can utilize different devices to perform computing tasks in different environments and scenarios. For example, an employee with a mobile phone visiting different offices might want to share content from their phone to that employee's desktop computer. Depending on the operating status of the desktop computer, sharing content from a phone to the desktop computer can present many challenges. Summary of the Invention

[0003] This summary is provided to present a simplified description of the chosen concept, which is further described in the following detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to help determine the scope of the claimed subject matter.

[0004] Techniques for projection via a device are described. According to various embodiments, the techniques described herein enable a locked host device to output data projected from another device while the host device remains locked. In at least some embodiments, the device context (locked or unlocked) of the host device can be taken into account when determining whether to broadcast the availability of content to receive the projection. Attached Figure Description

[0005] A detailed description is provided with reference to the accompanying drawings. In the drawings, the leftmost numeral of the reference numeral identifies the drawing in which that reference numeral first appears. The use of the same reference numeral in different instances in the description and drawings may indicate similar or identical items.

[0006] Figure 1 This is a description of an exemplary implementation of an environment that is operable to employ the techniques discussed herein, according to one or more embodiments.

[0007] Figure 2 An exemplary implementation scenario for exposing projection capabilities is described according to one or more embodiments.

[0008] Figure 3 An exemplary implementation scenario for establishing a projection connection according to one or more embodiments is described.

[0009] Figure 4 An exemplary implementation scenario for projection via a device, according to one or more embodiments, is described.

[0010] Figure 5 This is a flow diagram describing the steps of an exemplary process for determining the availability of broadcast or receiving projected content, according to one or more embodiments.

[0011] Figure 6 This is a flow diagram describing the steps in an exemplary process for determining whether a projection request is permitted, according to one or more embodiments.

[0012] Figure 7 This is a flow diagram describing the steps in an exemplary process for establishing a projection connection according to one or more embodiments.

[0013] Figure 8 This is a flow diagram describing the steps in an exemplary process for obtaining scannable projection information according to one or more embodiments.

[0014] Figure 9 As shown in the reference Figure 1 The exemplary systems and computing devices described herein are configured to implement embodiments of the techniques described herein. Detailed Implementation

[0015] Overview Techniques for projection via a device are described. According to various embodiments, the techniques described herein enable a locked host device to output data projected from another device (“guest device”) while the host device remains locked. Typically, a locked state refers to a state where the host device is powered on and running, but its various functions are inaccessible unless the device is unlocked. Therefore, the techniques for projection via a device enable a locked device to output various types of data projected from a guest device while preventing access to the locked device’s various functions (e.g., applications, services, identity, etc.).

[0016] According to various implementations, a host device (locked or unlocked) can determine whether to broadcast the availability of its output projection data based on the current device context. For example, the host device may be near and / or connected to a specific network. Based on the network type and / or network identity of the specific network, the host device can determine whether broadcasting its availability is secure or insecure. For example, consider a host device near and / or connected to a known trusted network, such as a corporate network associated with a user of the host device. In such a scenario, the host device can broadcast its projection availability because the network is trusted, and therefore the device is unlikely to be vulnerable to unauthorized and / or malicious access.

[0017] However, consider another scenario where a host device is near and / or connected to an unknown and / or untrusted network, such as an open network in a public place. In this scenario, the host device may not broadcast its projected availability because, for example, there is a higher probability of unwanted and / or malicious access by another device in that particular location compared to a known trusted network.

[0018] According to various implementations, a projection connection is established between a host device (e.g., a locked or unlocked host device) and a guest device. For example, the guest device detects a broadcast from the host device indicating its projection availability, as described above. The guest device queries the host device to establish a projection relationship, and the host device implements a permission process to determine whether the guest device is permitted to connect and project onto the host device. Therefore, the guest device and the host device negotiate a connection relationship to establish a projection connection between the devices. The guest device then sends various projection data for output by the host device, such as graphics, video, audio, etc. In at least some implementations, the connection relationship is established while the host device is in a locked state, and the host device outputs projection data while the host device is in a locked state.

[0019] In at least some implementations, the projection data includes a representation of the execution environment generated at the guest device. For example, various applications and services executing at the guest device generate output data, which is projected from the guest device for output by the host device, for example, while the host device is in a locked state. Thus, the host device's output device can be utilized by the guest device, while other functions of the host device (e.g., applications, services, identity, etc.) are inaccessible to the guest device.

[0020] Therefore, the techniques described herein enable host devices (e.g., locked host devices) to output data from guest devices while protecting various resources of the host device from unauthorized and malicious access.

[0021] In the following discussion, exemplary environments operable to employ the techniques described herein are first described. Next, a section entitled "Exemplary Implementation Scenarios" describes some exemplary implementation scenarios according to one or more embodiments. Following this, a section entitled "Exemplary Processes" describes some exemplary processes according to one or more embodiments. Finally, a section entitled "Exemplary Systems and Devices" describes exemplary systems and devices operable to employ the techniques discussed herein according to one or more embodiments.

[0022] An overview of exemplary implementations according to one or more embodiments has been presented; now, consider exemplary environments in which exemplary implementations may be employed.

[0023] Exemplary Environment Figure 1 An exemplary environment 100 is illustrated, in which techniques for projection via a device can be embodied. Environment 100 includes a host device 102, which can be implemented in various ways. For example, the host device 102 can be configured as a conventional computer (e.g., a desktop personal computer, a laptop computer, etc.), a mobile station, an entertainment device, a cordless phone, a tablet computer, a netbook, a wearable device, etc., as discussed above. Figure 9 Further description.

[0024] The host device 102 includes a computer processor 104 and a computer-readable storage medium 106 (medium 106). The medium 106 includes an operating system 108, an input module 110, and a wireless module 112.

[0025] Operating system 108 manages the resources of host device 102 and can be implemented using any suitable instruction format. Typically, operating system 108 enables the functions of host device 102 to access the hardware and logical resources of host device 102. Wireless module 112 represents a functional unit that enables host device 102 to wirelessly transmit (i.e., send and receive) data.

[0026] The host device 102 also includes or has access to output mechanisms 114 and input mechanisms 116. Output mechanism 114 represents functional units that enable the host device 102 to provide various types of output. For example, output mechanism 114 includes one or more displays 118 and one or more speakers 120. Display 118 typically represents hardware and logic units for visual output, and speaker 120 typically represents hardware and logic units for audio output.

[0027] Input mechanism 116 may include a keyboard, mouse, gesture-sensitive sensors and devices such as touch-based sensors and motion-tracking sensors (e.g., camera-based), stylus, touchpad, accelerometer, and microphone with accompanying voice recognition software, etc. Input mechanism 116 may be separate from or integrated with display 118, wherein examples of integration include gesture-sensitive displays with integrated touch-sensitive or motion-sensitive sensors. Input module 110 represents a functional unit for enabling host device 102 to receive input (e.g., via input mechanism 116) and process and route input in various ways.

[0028] Media 106 also includes a projection receiver (PR) module 122, which represents a functional unit for enabling host device 102 to output information projected from another device, such as video and / or audio output by output mechanism 114. For example, host device 102 can be connected to guest device 124 in various ways, such as via wired and / or wireless connections. For example, host device 102 can use any suitable wireless technology (e.g., Bluetooth, WiFi Direct). TM (etc.) connect to guest device 124 using a direct wireless connection. Alternatively or additionally, host device 102 can connect to guest device 124 on network 126 and via wired and / or wireless connections. Network 126 can be implemented in various ways, such as wired network, wireless network, and combinations thereof.

[0029] Guest device 124 includes a projector module 128, which represents a functional unit enabling guest device 124 to project output to various other devices. For example, the projector module 128 of guest device 124 may interface with PR module 122 to enable host device 102 to output information generated at guest device 124, such as a graphical user interface (GUI) for an application 130 residing on and / or executing on guest device 124, audio output based on audio data generated by host device 102, etc. For example, output mechanism 114 may be used to output information (e.g., graphics, video, audio, etc.) generated by one or more processors 132 of guest device 124 and sent from guest device 124 to host device 102. Typically, the output information from processor 132 represents the execution environment of guest device 124, such as information generated based on various applications and services executing on guest device 124.

[0030] As further detailed below, techniques for projection via the device can be employed to enable the guest device 124 to project information for output by the host device 102 even when the host device 102 is locked. Typically, the guest device 124 can be implemented as any suitable device, such as a conventional computer (e.g., a desktop PC, laptop computer, etc.), mobile station, entertainment device, cordless phone, tablet computer, netbook, wearable device, etc., as discussed below. Figure 9 Further description.

[0031] Host device 102 also includes a projection policy 134 and a broadcast policy 136 residing on medium 106. Projection policy 134 typically represents rules and permissions for determining whether a particular device and / or user is permitted to project onto host device 102. In at least some embodiments, projection policy 134 includes a permitted list of devices and / or users allowed to project onto host device 102, and a blocked list of devices and / or users not permitted to project onto host device 102.

[0032] Broadcast policy 136 typically represents rules and permissions used to determine whether host device 102 can broadcast discoverability information specifying that host device 102 can project information to different devices (e.g., guest device 124). In at least some embodiments, broadcast policy 136 is based on different device contexts that may occur. For example, broadcast policy 136 may specify network instances / network types in which host device 102 is allowed to broadcast discoverability information, and other network instances / network types in which host device 102 is not allowed to broadcast discoverability information.

[0033] Application 130 includes any suitable type of application and / or service, such as productivity applications, web browsers, media viewers, navigation applications, multimedia editing applications, etc. According to various embodiments, application 130 can be implemented as locally installed code, executed as part of a local runtime environment. Alternatively or additionally, application 130 represents a portal to distributed functions, such as web services, cloud services, distributed enterprise services, etc. According to various embodiments, information generated by executing application 130 via processor 132 is projected for output to host device 102.

[0034] Environment 100 also includes a projector service 138, which represents services accessible via network 126 to host device 102 and / or guest device 124. For example, projector service 138 represents a network-based service (e.g., cloud service) that the network can use to perform various projection-related tasks for host device 102 and / or guest device 124. In at least some embodiments, the functions and tasks described herein with reference to PR module 122 and / or projector module 128 may alternatively or additionally be performed by projector service 138.

[0035] Exemplary environments in which projection via a device can be employed have been described; now, some exemplary implementation scenarios according to one or more implementation methods are considered.

[0036] Exemplary Implementation Scenarios This section describes some exemplary implementation scenarios for projection via a device, according to one or more embodiments. Generally, the implementation scenarios are described as being performed in environment 100, but they can be performed in any suitable environment. Various features described with reference to environment 100 are discussed in the exemplary scenarios but are not explicitly shown in the corresponding figures.

[0037] Figure 2 An exemplary implementation scenario 200 for exposing projection capabilities according to one or more embodiments is depicted. Scenario 200 includes a host device 102 in a locked state 202, as indicated by a locked screen 204 displayed on a display 118. Typically, when the host device 102 is in the locked state 202, various functions of the host device 102 are prevented from being accessed unless a user unlocks the host device 102. For example, in the locked state 202, applications, services, and other functions of the host device 102 are not accessible via interaction with the host device 102. Typically, a user can unlock the host device 102 by entering valid authentication credentials that allow the host device 102 to transition from the locked state 202 to the unlocked state.

[0038] Along with various graphics and text information, the lock screen 204 displays information useful for projecting onto the host device 102 while in the locked state 202. For example, the PR module 122 generates projection-related information for display on the lock screen 204. For example, the lock screen 204 includes a device identifier 206 that indicates a custom identifier of the host device 102. In this particular example, the device identifier 206 (i.e., "Rouella's PC") specifies a particular user associated with the host device 102.

[0039] The lock screen 204 also includes an optical tag 208 that can be scanned to obtain projection information for projection onto the host device 102. In this particular example, the optical tag 208 is implemented as a matrix barcode, but in other scenarios it can be implemented as any suitable visual mark in which information for projection onto the host device 102 can be embedded and which can be scanned to obtain that information.

[0040] Scenario 200 also illustrates host device 102 transmitting a discovery beacon 210 detectable by other devices. For example, discovery beacon 210 represents a wireless signal that includes information about host device 102 and indicates that host device 102 can use it to output projected information while host device 102 is in a locked state 202. In at least some embodiments, PR module 122 transmits the information to be included in discovery beacon 210 to wireless module 112, and wireless module 112 causes the information to be wirelessly broadcast by host device 102 as discovery beacon 210. As further detailed below, whether discovery beacon 210 is transmitted at a particular time may depend on the context of host device 102.

[0041] Figure 3 An exemplary implementation scenario 300 for establishing a projection connection according to one or more embodiments is depicted. For example, scenario 300 represents an extension of scenario 200.

[0042] In scenario 300, host device 102 is in locked state 202, where a lock screen 204 is displayed on display 118. Additionally, guest device 124 detects that host device 102 is available for projection. For example, guest device 124 performs a wireless scan of its local vicinity and detects a discovery beacon 210 being transmitted by host device 102. Discovery beacon 210 includes identification information for host device 102, such as device identifier 206. Discovery beacon 210 also includes an indication that, for example, host device 102 is available to receive projection when it is in locked state 202.

[0043] Instead of or attached to the detection and discovery beacon 210, and to extract information from it, the visitor device 124 can perform an optical scan of the optical tag 208 (e.g., using an onboard camera) to extract information for connecting to and projecting onto the host device 102. For example, the identification and connection information of the host device 102 may be embedded in the optical tag 208, which can be extracted by the visitor device 124.

[0044] In some environments, the PR module 122 may determine that broadcasting its received projection is insecure (e.g., broadcasting discovery beacon 210). In such environments, the PR module 122 may suppress the transmission of discovery beacon 210, but may allow the establishment of a direct wireless connection via information extracted from optical tag 208 and / or other means.

[0045] Continuing with scene 300 and using the projection information extracted from discovery beacon 210 and / or optical tag 208, guest device 124 transmits connection request 302 to host device 102. Typically, connection request 302 identifies guest device 124 and indicates that guest device 124 is requesting to establish a connection with host device 102 and projects information to host device 102.

[0046] In response to receiving connection request 302, host device 102 performs an authorization process to determine whether guest device 124 is permitted to project onto host device 102. For example, PR module 122 presents an authorization GUI 304 that identifies guest device 124 and queries whether guest device 124 is permitted to project onto host device 102. Authorization GUI 304 also includes: an allow control 306, selectable to allow guest device 124 to project onto host device 102; and a deny control 308, selectable to disallow guest device 124 from projecting onto host device 102. Typically, selecting allow control 306 allows the connection and projection process to continue, while selecting deny control 308 prevents guest device 124 from connecting and projecting onto host device 102.

[0047] The permission GUI 304 also includes a permission option 310 (e.g., a selectable checkbox) that can be selected to indicate whether the selection of the allow control 306 or the deny control 308 creates a permission setting that will be automatically used for subsequent projection requests from the guest device 124. For example, if the user selects the permission option 310 and then selects the allow control 306, subsequent requests from the guest device 124 to connect to and project onto the host device 102 will be automatically allowed while the host device 102 is locked, without presenting the permission GUI 304. For example, the guest device 124 may be added to the projection policy 134 as a device allowed to project onto the host device 102 without requiring user input to allow the guest device 124 to project.

[0048] Furthermore, if the user selects the permission option 310 and then selects the denial control 308, subsequent requests from the guest device 124 for connecting and projecting onto the host device 102 while the host device 102 is locked will be automatically denied without presenting the permission GUI 304. For example, the guest device 124 is added to the projection policy 134 as a device not allowed to project onto the host device 102. In at least some embodiments, if the permission option 310 is not selected before selecting the permission control 306 or the denial control 308, the permission GUI 304 is presented in response to subsequent requests from the guest device 124 for connecting and projecting onto the host device 102.

[0049] Continuing with scenario 300, consider the user selecting the permission control 306, which allows the PR module 122 to continue the connection and projection process between the guest device 124 and the host device 102. Therefore, the guest device 124 and the host device 102 participate in the wireless handshake process 312 to establish a projection connection 314 between the devices. For example, any suitable wireless protocol can be used (e.g., WiFiDirect). TM (e.g., Bluetooth) establishes projection connection 314 as a direct wireless connection between guest device 124 and host device 102. Alternatively, projection connection 314 may represent an indirect wireless connection between guest device 124 and host device 102, such as via a separate wireless access point on network 126.

[0050] In at least some embodiments, handshake 312 involves exchanging projection parameters between host device 102 and guest device 124. Host device 102, for example, informs guest device 124 of its output capabilities, such as the display size and / or resolution of display 118, audio output capabilities, video compression types supported by host device 102, etc. Therefore, guest device 124 can configure its projection information at least in part based on the projection parameters provided by host device 102. Once projection connection 314 is established and guest device 124 is notified of the projection parameters for projecting onto host device 102, guest device 124 can begin projecting onto host device 102. Consider, for example, the following scenario.

[0051] Figure 4 An exemplary implementation scenario 400 for projection via a device, according to one or more embodiments, is depicted. For example, scenario 400 represents an extension of scenarios 200 and 300 detailed above.

[0052] In scenario 400, host device 102 is in locked state 202 and projection connection 314 has been established, as described above. Therefore, host device 102 transitions to projection state 402, where host device 102 remains in locked state 202, receives projection data 404 from guest device 124, and outputs projection data 404.

[0053] As part of projection state 402, projection canvas 406 is generated by PR module 122 for the output of projection data 404, and lock screen 204 is covered and / or replaced with projection canvas 406. Typically, projection canvas 406 represents a portion of display 118 on which projection data 404 projected from guest device 124 is output. In this particular example, projection canvas 406 displays GUI 408a for application 410a executed on guest device 124 and GUI 408b for application 410b executed on guest device 124. For example, applications 410a and 410b represent instances of application 130 described above.

[0054] In at least some implementations, a user can interact with GUIs 408a, 408b via input to the guest device 124. Alternatively or additionally, projection connection 314 allows the user to provide input to GUIs 408a, 408b using the input mechanism 116 of the host device 102. For example, by allowing the guest device 124 to establish projection connection 314, the host device 102 can allow the input mechanism 116 and output mechanism to serve as part of the projection relationship between the guest device 124 and the host device 102.

[0055] In this implementation, the logic of applications 410a and 410b is executed by processor 132 on guest device 124. Furthermore, user input provided by input mechanism 116 to GUIs 408a and 408b can be transmitted from host device 102 to guest device 124, such that the user input affects the execution of applications 410a and 410b by processor 132. Although scenario 400 has been discussed with reference to visual output to a projection canvas, it should be understood that various other types of output can be provided as part of the projection relationship, such as audio output from speaker 120, output to peripheral devices attached to host device 102 (e.g., to a printer), etc.

[0056] According to various implementations, various actions and communications discussed in scenarios 200-400 occur while the host device 102 is in the locked state 202. For example, when the guest device 124 and / or the host device 102 terminates the projection connection 314, the host device 102 remains in the locked state 202, and the lock screen 204 is displayed in place of the projection canvas 406.

[0057] Although the scenario described above refers to a host device in a locked state, the scenario can also be realized using an unlocked device using a technique that projects data from the device.

[0058] Some exemplary implementation scenarios have been described; now, we will consider some exemplary processes for projection via a device according to one or more implementations.

[0059] Exemplary process The following discussion describes some exemplary procedures for projection via a device according to one or more embodiments. Figure 1 Environment 100 Figure 9 The exemplary process is employed in System 900 and / or any other suitable environment. For example, the process represents a procedure for implementing the exemplary embodiments discussed above. In at least some embodiments, the steps described for the various processes can be implemented automatically and independently of user interaction. The process is discussed with reference to actions performed by projection functional units, which represent entities relating to various aspects of the projection scene. Examples of projection functional units include PR module 122, projector module 128, projector service 138, interactions between these modules and / or services, etc. However, this is not intended to be limiting, and aspects of the method can be performed by any suitable entity.

[0060] Figure 5 This is a flow diagram describing the steps in a method according to one or more embodiments. The method describes an exemplary process for determining the availability of content to be broadcast for receiving projections, according to one or more implementations.

[0061] Step 500 determines the current device context of the device. For example, PR module 122 determines the current device context of host device 102. Typically, device context can refer to various different device-related conditions. Examples of device context include identifiers and / or network types for networks that the device is currently near and / or connected to, the geographical location of the device, the identities and / or device types of other detectable nearby devices, and so on. Typically, step 500 can be performed while the device is in a locked or unlocked state.

[0062] Step 502 determines whether a device is permitted to broadcast discovery data, which indicates its availability to receive projected content from another device, based on a broadcast policy and the current device context. For example, the broadcast policy identifies device contexts in which a device is permitted to broadcast its availability, and other device contexts in which a device is not permitted to broadcast its availability. For instance, a particular broadcast policy might specify that a device is permitted to broadcast its availability if it is connected to a known trusted network (e.g., a corporate network). The broadcast policy might further specify that a device is not permitted to broadcast its availability if it is connected to an unknown and / or untrusted network (e.g., an open public network).

[0063] If a device is not permitted to broadcast its availability (“No”), step 504 prevents discovery data from being sent by the device. For example, PR module 122 determines that host device 102 is not permitted to broadcast discovery information based on the current device context (e.g., the current network type). Therefore, PR module 122 does not submit discovery information for wireless module 112 to send.

[0064] If a device is allowed to broadcast its availability (“Yes”), step 506 causes discovery data indicating that the device is available to receive projected content to be sent. For example, PR module 122 determines that host device 102 is allowed to broadcast discovery information based on the current device context (e.g., current network type). Therefore, discovery data is sent wirelessly and / or via a wired connection, such as via discovery beacon 210.

[0065] Step 508 determines whether there has been a change in the device context to a different device context. For example, PR module 122 periodically monitors the device context to determine whether the context of host device 102 has changed. If the device context has changed (“Yes”), the process returns to step 502, which is performed based on the different device context. For example, if host device 102 moves from an allowed network type to a prohibited network type, PR module 122 can cause host device 102 to stop broadcasting discovery availability information.

[0066] If the device context has not changed, the process returns to the appropriate prior step, either step 504 or step 506, depending on whether the device was previously allowed or not to broadcast discoverability information.

[0067] According to various implementation methods, reference Figure 5 The described steps can be performed while the host device is in a locked or unlocked state.

[0068] Figure 6 This is a flow diagram describing the steps in a method according to one or more embodiments. The method describes an exemplary process for determining whether a projection request is permitted according to one or more implementations.

[0069] Step 600 detects a request from the first device to project a visual representation of the execution environment generated at the first device onto the second device. For example, host device 102 detects a request from guest device 124 to establish a connection with host device 102 while the host device is locked and for the purpose of projecting content onto host device 102. The request may take various forms, such as queries including information from discovery beacon 210 and / or information extracted from optical tag 208.

[0070] Step 602 determines whether the first device has permission to project onto the second device. For example, PR module 122 causes a GUI (e.g., permission GUI 304) to be presented, which includes a device identifier and an inquiry about whether the guest device 124 is permitted to project onto the host device 102 while the host device 102 is locked.

[0071] Alternatively or additionally, the PR module 122 compares the attributes of the guest device 124 with the projection policy 134 to determine whether the guest device 124 is permitted to project onto the computing device. For example, the projection policy 134 identifies whether certain device instances and / or device types are permitted to project onto the host device 102. For example, the projection policy 134 includes a first list of device instances and / or device types that are permitted to project onto the host device 102 while the host device 102 is in a locked and / or unlocked state, and a second list of other device instances and / or device types that are not permitted to project onto the host device 102 while the host device 102 is in a locked and / or unlocked state.

[0072] If the first device has permission to project onto the second device (“Yes”), step 604 allows the first device to project a visual representation onto the second device. For example, PR module 122 receives an instruction from user input to select permission control 306, indicating permission for guest device 124 to project onto host device 102. Alternatively or additionally, PR module 122 determines that the projector device is identified by projection policy 134 as permitted to project onto host device 102.

[0073] Step 606 establishes a projection connection between the first and second devices. For example, host device 102 participates in a handshake process that establishes a data connection between host device 102 and guest device 124. The data connection can be implemented in various ways, such as a direct wireless connection, an indirect wireless connection, a wired connection, etc., between host device 102 and guest device 124.

[0074] Step 608 causes the visual representation to be output by the second device. For example, host device 102 receives projection data from guest device 124. For example, the visual representation is based on the projection data and represents a visual representation of the execution environment generated at guest device 124. Various other representations of the execution environment may also be output, such as audio output, haptic output, output to various peripheral devices attached to host device 102, etc.

[0075] Returning to step 602, if the first device does not have permission to project onto the second device (“No”), then step 610 disallows the first device from projecting a visual representation onto the second device. For example, PR module 122 receives an instruction from user input to select the denial control 308, indicating that guest device 124 is not permitted to project onto host device 102. Alternatively or additionally, PR module 122 determines that the projector device is identified by projection policy 134 as not permitted to project onto host device 102. In at least some embodiments, host device 102 sends a notification to guest device 124 indicating that guest device 124 is denied permission to project onto host device 102.

[0076] According to various implementation methods, reference Figure 6 The described steps and actions can be performed simultaneously when the second device is in a locked or unlocked state.

[0077] In at least some embodiments, reference Figure 5 The described process can be compared with the reference. Figure 6 The described process runs continuously and / or simultaneously, such that changes to the device context can cause the host device 102 to alter its discoverability and / or projection behavior.

[0078] Figure 7 This is a flow diagram describing the steps in a method according to one or more embodiments. The method describes exemplary procedures for establishing projection connections according to one or more implementations.

[0079] Step 700 detects that the first device is available to receive projected content. For example, visitor device 124 detects discovery beacon 210, which indicates, for example, that host device 102 is available to receive projected content while host device 102 is in a locked state. Alternatively or additionally, other detection techniques (e.g., scanning optical tag 208) are employed to determine the availability of host device 102.

[0080] Step 702 establishes a projection connection between the first and second devices. For example, in response to host device 102 granting guest device 124 permission to project onto host device 102, guest device 124 and host device 102 perform a process to establish a connection between the devices, such as a direct wireless connection.

[0081] Establishing a projection connection may also involve exchanging projection parameters between host device 102 and guest device 124. For example, guest device 124 receives from host device 102 various parameters that guest device 124 will use when configuring projection data to be transmitted to host device 102. Examples of such parameters include video and / or audio compression / encoding supported by host device 102, display size / resolution of host device 102, processing power of host device 102 (e.g., bandwidth), etc.

[0082] Step 704 projects a visual representation of the execution environment generated at the second device onto the projection connection for display at the first device. For example, guest device 124 locally performs various tasks (e.g., application 130) to generate projection data describing the output from the tasks, such as graphics, audio, etc. Guest device 124 then sends the projection data to host device 102, for example, while host device 102 is in a locked state, for output by host device 102. In at least some embodiments, host device 102 replaces and / or overlays the lock screen with a visual representation of the execution environment.

[0083] According to various implementation methods, reference Figure 7 The described steps and actions can be performed simultaneously when the first device is in a locked or unlocked state.

[0084] Figure 8 This is a flow diagram describing the steps in a method according to one or more embodiments. The method describes an exemplary process for obtaining scannable projection information according to one or more implementations.

[0085] Step 800 scans the display of the first device to obtain projection information. For example, the guest device 124 scans the optical label 208 and / or other visual markings displayed on the display 118 of the host device 102.

[0086] Step 802 extracts data from the projection information that can be used to establish a projection connection between the first and second devices. For example, the projector module 128 of the guest device 124 processes the projection information to identify various parameters used for connection and projection to the host device 102. Examples of such connection and projection information are described throughout this document.

[0087] According to various implementation methods, reference Figure 8 The described steps and actions can be performed simultaneously when the first device is in a locked or unlocked state.

[0088] Therefore, the technology described in this paper for projection via a device enables a host device to output projection data from other devices while maintaining the security of the host device.

[0089] Some exemplary processes have already been discussed; now, we will consider a discussion of exemplary systems and devices according to one or more embodiments.

[0090] Exemplary systems and devices Figure 9An exemplary system is generally illustrated at 900, which includes an exemplary computing device 902, representing one or more computing systems and / or devices that can implement the various technologies described herein. For example, the above references Figure 1 The host device 102 and / or guest device 124 discussed may be embodied as computing device 902. Computing device 902 may be, for example, a service provider's server, a device associated with a client (e.g., a client device), a system-on-a-chip, and / or any other suitable computing device or computing system.

[0091] The exemplary computing device 902 shown includes a processing system 904, one or more computer-readable media 906, and one or more input / output (I / O) interfaces 908 that are communicatively coupled to each other. Although not shown, the computing device 902 may also include a system bus or other data and command transfer system that couples various components to each other. The system bus may include any or a combination of different bus architectures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus utilizing any of various bus architectures. Various other examples, such as control lines and data lines, are also contemplated.

[0092] Processing system 904 represents a functional unit for performing one or more operations using hardware. Therefore, processing system 904 is shown as including hardware elements 910 that can be configured as processors, functional blocks, etc. This may include application-specific integrated circuits (ASICs) or other logic devices implemented in hardware using one or more semiconductors. Hardware elements 910 are not limited by the materials forming them or the processing mechanisms employed therein. For example, a processor may include semiconductors and / or transistors (e.g., integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically executable instructions.

[0093] Computer-readable medium 906 is shown as including memory / storage device 912. Memory / storage device 912 represents a memory / storage capacity associated with one or more computer-readable media. Memory / storage device 912 may include volatile media (e.g., random access memory (RAM)) and / or non-volatile media (e.g., read-only memory (ROM), flash memory, optical disk, magnetic disk, etc.). Memory / storage device 912 may include fixed media (e.g., RAM, ROM, fixed hard disk drive, etc.) and removable media (e.g., flash memory, removable hard disk drive, optical disk, etc.). Computer-readable medium 906 may be configured in various other ways as further described below.

[0094] Input / output interface 908 represents a functional unit for allowing a user to input commands and information into computing device 902 and also for allowing information to be presented to the user and / or other components or devices using various input / output devices. Examples of input devices include keyboards, cursor control devices (e.g., mice), microphones (e.g., for speech recognition and / or voice input), scanners, touch functional units (e.g., capacitive sensors or other sensors configured to detect physical touch), cameras (e.g., which may employ visible or invisible wavelengths such as infrared frequencies to detect non-touch-related movements as gestures), and so on. Examples of output devices include display devices (e.g., monitors or projectors), speakers, printers, network interface cards, haptic-responsive devices, and so on. Therefore, computing device 902 can be configured to support user interaction in various ways as further described below.

[0095] This document describes various technologies in the general context of software, hardware components, or program modules. Typically, such modules include routines, programs, objects, elements, components, data structures, etc., that perform specific tasks or implement specific abstract data types. The terms “module,” “function,” “entity,” and “component,” as used herein, generally refer to software, firmware, hardware, or a combination thereof. The technologies described herein are platform-independent, meaning they can be implemented on a wide range of commercial computing platforms with various processors.

[0096] Implementations of the described modules and techniques may be stored on or transmitted across some form of computer-readable medium. The computer-readable medium may include a variety of media accessible by the computing device 902. By way of example and not limitation, the computer-readable medium may include a “computer-readable storage medium” and a “computer-readable signal medium.”

[0097] "Computer-readable storage medium" can refer to a medium and / or device that enables persistent storage of information compared to mere signal transmission, carrier waves, or the signal itself. Computer-readable storage media do not include the signal itself. Computer-readable storage media include hardware such as volatile and non-volatile, removable and non-removable media and / or storage devices implemented in a method or technique suitable for storing information such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical storage devices, hard disks, magnetic tape cassettes, magnetic tapes, disk storage devices or other magnetic storage devices, or other storage devices, tangible media, or articles of art suitable for storing desired information and accessible by a computer.

[0098] "Computer-readable signal medium" can refer to a signal-bearing medium configured to send instructions, for example, via a network, to computing device 902. The signal medium can typically embody instructions, data structures, program modules, or other data in a computer-readable modulated data signal, such as a carrier wave, data signal, or other transmission mechanism. The signal medium also includes any information delivery medium. The term "modulated data signal" means a signal whose characteristics are set or altered in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media such as wired networks or direct wired connections, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.

[0099] As previously described, hardware element 910 and computer-readable medium 906 represent instructions, modules, programmable device logic units, and / or fixed device logic units implemented in hardware, which may be employed in some embodiments to implement at least some aspects of the techniques described herein. Hardware elements may include components of integrated circuits or systems-on-a-chip, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations employing silicon or other hardware devices. In this context, hardware elements may function as: processing devices that execute program tasks defined by instructions, modules, and / or logic units communicating with the hardware elements, and hardware devices (e.g., the previously described computer-readable storage medium) for storing instructions for execution.

[0100] The various techniques and modules described herein can also be implemented using the combinations described above. Therefore, software, hardware, or program modules and other program modules can be implemented as one or more instructions and / or logic embodied on some form of computer-readable storage medium and / or embodied by one or more hardware elements 910. The computing device 902 can be configured to implement specific instructions and / or functions corresponding to the software and / or hardware modules. Therefore, implementations of modules executable by the computing device 902 as software can be implemented at least partially in hardware, for example, by using the computer-readable storage medium and / or hardware elements 910 of a processing system. The instructions and / or functions can be executable / operable by one or more articles of manufacture (e.g., one or more computing devices 902 and / or processing systems 904) to implement the techniques, modules, and examples described herein.

[0101] like Figure 9As further illustrated, the exemplary system 900 implements a ubiquitous environment for a seamless user experience when running applications on personal computers (PCs), television devices, and / or mobile devices. Services and applications function substantially similarly across all three environments to achieve a shared user experience when switching from one device to another while utilizing applications, playing video games, watching videos, etc.

[0102] In the exemplary system 900, multiple devices are interconnected via a central computing device. The central computing device may be local to the multiple devices or remote from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers connected to the multiple devices via a network, the Internet, or other data communication links.

[0103] In one embodiment, this interconnect architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to users on multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and a central computing device uses the platform to deliver an experience to the devices that is both device-specific and common to all devices. In one embodiment, a class of target devices is created, and the experience is tailored for a general class of devices. A class of devices can be defined by physical characteristics, usage type, or other common characteristics of the devices.

[0104] In various embodiments, the computing device 902 can take on a variety of different configurations, such as for use as a computer 914, a mobile device 916, and a television 918. Each of these configurations includes devices that can have generally different constructions and capabilities, and thus the computing device 902 can be configured according to one or more of different device classes. For example, the computing device 902 can be implemented as a computer 914 type device, including personal computers, desktop computers, multi-screen computers, laptop computers, netbooks, etc.

[0105] Computing device 902 can also be implemented as a mobile device (Class 916), including mobile devices such as mobile phones, portable music players, portable gaming devices, tablet computers, wearable devices, multi-screen computers, etc. Computing device 902 can also be implemented as a television device (Class 918), which includes devices that have or are connected to a typically large screen in a leisure viewing environment. These devices include televisions, set-top boxes, game consoles, etc.

[0106] The techniques described herein can be supported by these various configurations of computing device 902, and are not limited to specific examples of the techniques described herein. For example, the functionality discussed with reference to host device 102 and / or guest device 124 can be implemented, in whole or in part, using a distributed system (e.g., on “cloud” 920 via platform 922 as described below).

[0107] Cloud 920 includes and / or represents platform 922 for resource 924. Platform 922 abstracts the underlying functionality of hardware resources (e.g., servers) and software resources of cloud 920. Resource 924 may include applications and / or data that can be utilized while computer processing is performed on a server remote from computing device 902. Resource 924 may also include services provided on the Internet and / or through a subscriber network (e.g., cellular or Wi-Fi networks).

[0108] Platform 922 can abstract resources and functions to connect computing device 902 to other computing devices. Platform 922 can also be used to abstract resource scaling to provide corresponding scaling levels for encountered demands, said demands being for resources 924 implemented via platform 922. Therefore, in embodiments of interconnected devices, implementations of the functions described herein can be distributed throughout system 900. For example, functions can be implemented partly on computing device 902 and partly via platform 922, which abstracts the functions of cloud 920.

[0109] This document discusses various methods that can be implemented to perform the techniques discussed herein. Aspects of the methods can be implemented in hardware, firmware, or software, or a combination thereof. A method is shown as a set of steps specifying operations performed by one or more devices, and is not necessarily limited to the shown order of operations for performing the individual blocks. Furthermore, according to one or more embodiments, operations shown with respect to a particular method can be combined and / or interchanged with operations of different methods. Aspects of the methods can be implemented via interactions between various entities discussed above in the reference environment 100 and / or system 900.

[0110] The implementation methods discussed in this article include: Example 1: A system for determining whether a second device is permitted to project a visual representation of an execution environment onto a first device, the system comprising: one or more processors; and one or more computer-readable media storing processor-executable instructions that, in response to execution by the one or more processors, cause the system to perform operations including: determining, based on a broadcast policy and a current device context, the availability of a first device to broadcast content it receives from another device; causing discovery data indicating that the first device is available to receive the content to be projected to be wirelessly transmitted; detecting a request from a second device to project a visual representation of an execution environment generated at the second device onto the first device; determining whether the second device has permission to project onto the first device; and allowing or denying the second device from projecting the visual representation onto the first device based on whether the second device is indicated to have permission to project onto the first device.

[0111] Example 2: A system as described in Example 1, wherein the system is configured to perform an operation while the first device is in a locked state.

[0112] Example 3: A system as described in one or more of Examples 1 or 2, wherein a broadcast policy specifies a first device context in which a first device is allowed to broadcast its availability of receiving projected content, and a second device context in which the first device is not allowed to broadcast its availability of receiving projected content, and wherein the current device context corresponds to the first device context.

[0113] Example 4: A system as described in one or more of Examples 1-3, wherein a broadcast policy specifies a first network type in which a first device is allowed to broadcast its availability of receiving projected content, and a second network type in which the first device is not allowed to broadcast its availability of receiving projected content, and wherein the current device context indicates that the first device is connected to a network of the first network type.

[0114] Example 5: A system as described in one or more of Examples 1-4, wherein the request from the second device includes a device identifier for the second device, and wherein the operation further includes causing a graphical user interface (GUI) to be rendered, the GUI including the device identifier and an inquiry about whether the second device is allowed to project onto the first device while the first device is in a locked state.

[0115] Example 6: A system as described in one or more of Examples 1-5, wherein the determination is based on a projection policy applied to the second device, and wherein the allow or deny is performed based on whether the projection policy indicates that the second device is allowed to project onto the first device while the first device is in a locked state.

[0116] Example 7: A system as described in one or more of Examples 1-6, wherein the determination is based on a projection strategy, the projection strategy comprising: a first list of one or more devices that are allowed to project onto the first device while the first device is in a locked state; and a second list of one or more devices that are not allowed to project onto the first device while the first device is in a locked state, wherein the allowance or denial is performed based on whether the second device is listed in the first list or the second list.

[0117] Example 8: A system as described in one or more of Examples 1-7, wherein the operation further includes displaying projection information, which can be scanned by the second device to extract information that can be used to establish a projection connection between the first device and the second device.

[0118] Example 9: A system as described in one or more of Examples 1-8, wherein the operation further includes: detecting a change from the current device context to a different device context; determining, based on the projection policy and the different device context, the availability that a first device is not allowed to broadcast content it receives from another device; and preventing the simultaneous transmission of discovery data when applied in different device contexts.

[0119] Example 10: A system as described in one or more of Examples 1-9, wherein the operation further includes: granting permission for the second device to project a visual representation onto the first device based on the second device being instructed to have permission to project onto the first device while the first device is in a locked state; and causing the visual representation to be displayed by the first device while the first device is in a locked state.

[0120] Example 11: A method for determining whether a first device is permitted to project a visual representation of an execution environment to a second device, the method comprising: detecting a request from the first device to project a visual representation of an execution environment generated at the first device to the second device while the second device is in a locked state; determining whether the first device has permission to project to the second device while the second device is in a locked state; and allowing or denying permission from the first device to project the visual representation to the second device based on whether the first device is indicated to have permission to project to the second device while the second device is in the locked state.

[0121] Example 12: The method as described in Example 11 further includes: displaying projection information that can be scanned to extract information that can be used to establish a projection connection with the second device; and a first device permission to project a visual representation to the second device based on the first device being instructed to have permission to project onto the second device while the second device is in a locked state; and establishing a projection connection between the first device and the second device based at least in part on information included in the displayed projection information.

[0122] Example 13: The method as described in one or more of Examples 11 or 12 further includes: determining, based on a broadcast policy and the current device context, the availability of a second device to broadcast content it can receive from another device; causing discovery data indicating that the second device is available to receive content to be projected to be wirelessly transmitted, and while the second device is in a locked state, wherein requests from the first device are based at least in part on the discovery data.

[0123] Example 14: The method of one or more of Examples 11-13 further includes: determining, based on a broadcast policy and the current device context, the availability of content that the second device is not permitted to broadcast for receiving projections from another device; and preventing discovery data indicating that the second device is available to receive projections from the second device from being sent while the second device is in a locked state and while the current device context is being applied.

[0124] Example 15: The method of one or more of Examples 11-14 further includes: determining, based on the network type of the network to which the second device is connected, whether the second device is permitted to broadcast the availability of receiving projected content from another device; and allowing or blocking the transmission of discovery data indicating that the second device can be used to receive projected content while the second device is in a locked state, based on the network type of the network.

[0125] Example 16: The method as described in one or more of Examples 11-15, wherein the determination is based on a projection strategy comprising: a first list of one or more devices that are allowed to project onto the second device while the second device is in a locked state; and a second list of one or more devices that are not allowed to project onto the second device while the second device is in a locked state, wherein the allowance or denial is performed based on whether the first device is listed in the first list or the second list.

[0126] Example 17: A method for projecting a visual representation of an execution environment onto a locked device, the method comprising: detecting that a first device is available to receive the projected content while the first device is in a locked state; causing a projection connection between the first device and a second device and being established while the first device is in a locked state; and while the first device is in a locked state, projecting the visual representation of the execution environment generated at the second device via the projection connection for display at the first device.

[0127] Example 18: The method as described in Example 17, wherein the detection includes detecting wireless discovery data indicating that the first device is available to receive projected content while the first device is in a locked state.

[0128] Example 19: The method as described in one or more of Examples 17 or 18, wherein the detection includes: scanning the display of the first device to obtain projection information displayed on the display; and extracting data from the projection information that can be used to establish a projection connection between the first device and the second device.

[0129] Example 20: The method as described in one or more of Examples 17-19, wherein the visual representation of the execution environment includes a graphical user interface (GUI) generated by an application executing on a second device, and wherein the projection causes the GUI to be displayed as an overlay on the lock screen of the first device.

[0130] in conclusion Although embodiments of techniques and apparatus for implementing projection via a device have been described in language specific to features and / or methods, it should be understood that the subject matter of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary embodiments for implementing projection via a device.

Claims

1. A system for ascertaining whether to allow a second device to project a visual representation of an execution environment to a first device, the system comprising: one or more processors; and one or more computer-readable media storing processor-executable instructions that, in response to execution by the one or more processors, cause the system to perform the following operations while the first device is in a locked state: determining a current device context of the first device, wherein the first device is in a locked state that indicates the first device is powered on and started and various functionalities of the first device are not accessible until the first device is unlocked by entering a valid authentication credential; determining, based on a broadcast policy and the current device context, that the first device is allowed to broadcast availability of content that it receives projection of from another device; causing discovery data indicating that the first device is available to receive projected content to be wirelessly transmitted; detecting a request from a second device to project a visual representation of an execution environment generated at the second device to the first device; ascertaining whether the second device has permission to project to the first device; and based on the second device having permission to project to the first device, allowing a projection connection to be established between the first device and the second device to project the visual representation to the first device; or based on the second device not having permission to project to the first device, denying a projection connection to be established between the first device and the second device. the broadcast policy specifies a first device context in which the first device is allowed to broadcast availability of content that it receives projection of, and a second device context in which the first device is not allowed to broadcast availability of content that it receives projection of, and wherein the current device context corresponds to the first device context.

2. The system of claim 1, wherein, the broadcast policy specifies a first network type in which the first device is allowed to broadcast availability of content that it receives projection of, and a second network type in which the first device is not allowed to broadcast availability of content that it receives projection of, and wherein the current device context indicates that the first device is connected to a network of the first network type.

3. The system of claim 1, wherein, the request from the second device includes a device identifier for the second device, and wherein the operations further comprise causing a graphical user interface (GUI) to be presented, the GUI including the device identifier and a query as to whether the second device is allowed to project to the first device while the first device is in a locked state.

4. The system of claim 1, wherein, the ascertaining is based on a projection policy that applies to the second device, and wherein the allowing or denying is performed based on whether the projection policy indicates that the second device is allowed to project to the first device while the first device is in a locked state.

5. The system of claim 1, wherein, the ascertaining is based on a projection policy that includes:

6. The system of claim 1, wherein, a first list of one or more devices that are allowed to project to the first device while the first device is in a locked state; and a second list of one or more devices that are not allowed to project to the first device while the first device is in a locked state. a second list of one or more devices that are not allowed to project to the first device while the first device is in the locked state, wherein the allowing or disallowing is performed based on whether the second device is listed in the first list or the second list.

7. The system of claim 1, wherein, The operations further include displaying projection information that is scannable by the second device to extract information usable to establish a projection connection between the first device and the second device.

8. The system of claim 1, wherein, The operations further include: detecting a change from the current device context to a different device context; determining, based on the projection policy and the different device context, that the first device is not allowed to broadcast availability of content that it receives projection from another device; and preventing sending of the discovery data while the different device context applies.

9. The system of claim 1, wherein, The operations further include: allowing the second device that is permitted to project the visual representation to the first device based on the second device being indicated as having permission to project to the first device while the first device is in the locked state; and causing the visual representation to be displayed by the first device while the first device is in the locked state.

10. A method for ascertaining whether a first device is allowed to project a visual representation of an execution environment to a second device, the method comprising performing the following operations while the second device is in a locked state: determining a current device context of the second device, wherein, the second device being in a locked state that indicates that the second device is powered on and booted and that various functionality of the second device is not accessible until the second device is unlocked by entering a valid authentication credential; determining, based on a broadcast policy and the current device context, that the second device is allowed to broadcast availability of content that it receives projection from another device; causing discovery data indicating that the second device is available to receive projected content to be wirelessly sent; detecting a request from the first device to project a visual representation of an execution environment generated at the first device to the second device; ascertaining whether the first device has permission to project to the second device; and based on the first device having permission to project to the second device, allowing a projection connection to be established between the first device and the second device to project the visual representation to the second device; or based on the first device not having permission to project to the second device, disallowing a projection connection to be established between the first device and the second device.

11. The method of claim 10, further comprising: displaying projection information that is scannable to extract information usable to establish a projection connection with the second device; and allowing the first device that projects a visual representation to the second device based on the first device being indicated as having permission to project to the second device while the second device is in a locked state; and establishing a projection connection between the first device and the second device based at least in part on the information included in the displayed projection information.

12. The method of claim 10, wherein, The request from the first device is based at least in part on the discovery data.

13. The method of claim 10, further comprising: determining, based on a broadcast policy and a current device context, that the second device is not permitted to broadcast availability of content that it receives for casting from another device; and preventing discovery data indicating that the second device is available to receive content for casting while the second device is in a locked state from being sent while the current device context applies.

14. The method of claim 10, further comprising: determining, based on a network type of a network to which the second device is connected, whether the second device is permitted to broadcast availability of content that it receives for casting from another device; and allowing or preventing transmission of discovery data indicating that the second device is available to receive content for casting while the second device is in a locked state based on the network type of the network.

15. A system comprising: one or more processors; and one or more computer-readable media storing processor-executable instructions that, in response to execution by the one or more processors, cause the system to perform operations including: determining, based on a current device context, that a first device is permitted to broadcast availability of content that it receives for casting from another device; causing discovery data indicating that the first device is available to receive content for casting to be transmitted wirelessly; detecting a request from a second device to cast, to the first device, a visual representation of an execution environment generated at the second device; ascertaining whether the second device has permission to cast to the first device; and based on whether the second device is indicated as having permission to cast to the first device, allowing or denying the second device to cast the visual representation to the first device. the current device context includes a geographic location in which the first device is currently located.

16. The system of claim 15, wherein, the current device context includes a network type to which the first device is currently connected.

17. The system of claim 15, wherein, a broadcast policy associated with the first device:

18. The system of claim 17, wherein, permits the first device to broadcast availability of content that it receives for casting from another device when the first device is connected to a trusted network; and prohibits the first device from broadcasting availability of content that it receives for casting from another device when the first device is connected to an open network. the current device context includes a network identification to which the first device is currently connected.

19. The system of claim 16, wherein, a broadcast policy associated with the first device:

20. The system of claim 19, wherein, permits the first device to broadcast availability of content that it receives for casting from another device when the first device is connected to a network having a network identification on a list of trusted network identifications for the first device; and prohibits the first device from broadcasting availability of content that it receives for casting from another device when the first device is connected to a network having a network identification not on the list of trusted network identifications for the first device. the current device context includes one or more identifications of other computing devices that are within a detectable proximity of the first device.

21. The system of claim 15, wherein, a broadcast policy associated with the first device:

22. The system of claim 21, wherein, ​ allowing the first device to broadcast its availability to receive projected content from another device when the first device determines that one or more potential projection devices for which identifying information has been received are listed as approved projection devices; and prohibiting the first device from broadcasting its availability to receive projected content from another device when the first device determines that one or more potential projection devices for which identifying information has been received are not listed as approved projection devices.

23. The system of claim 15, wherein, the current device context includes one or more device types of other computing devices that are within a detectable proximity of the first device.

24. The system of claim 15, wherein, the operations further include: determining that the current device context has changed to a new device context; and based on the new device context, causing the discovery data indicating that the first device is available to receive projected content to no longer be transmitted wirelessly.

25. A method comprising: sending, from a second device to a first device, identifying information of the second device; while the first device is in a locked state, detecting that the first device is available to receive projected content; while the first device is in the locked state, causing a projection connection to be established between the first device and the second device; and while the first device is in the locked state, projecting, through the projection connection, a visual representation of an execution environment generated at the second device for display at the first device. the identifying information sent from the second device to the first device includes a device type of the second device.

26. The method of claim 25, wherein, the identifying information sent from the second device to the first device includes a specific identification of the second device.

27. The method of claim 25, wherein, 28. A method comprising: while the first device is in a locked state, detecting that the first device is available to receive projected content, wherein the first device is available to receive projected content based on a current device context of the first device; while the first device is in the locked state, causing a projection connection to be established between the first device and a second device; and while the first device is in the locked state, projecting, through the projection connection, a visual representation of an execution environment generated at the second device for display at the first device. the detecting further includes:

29. The method of claim 28, wherein, scanning a display of the first device for projection information being displayed on the display; and extracting, from the projection information, data that is usable to establish a projection connection between the first device and the second device. the current device context includes a geographic location in which the first device is currently located.

30. The method of claim 28, wherein, the current device context includes a type of network to which the first device is currently connected.

31. The method of claim 28, wherein, the current device context includes one or more identifications of other computing devices that are within a detectable proximity of the first device.

32. The method of claim 28, wherein, the current device context includes one or more device types of other computing devices that are within a detectable proximity of the first device.

33. The method of claim 28, wherein, ​ 34. The method of claim 28, wherein, including causing the establishment of the projection connection comprises causing the receiving, at the second device, of one or more projection parameters configured to be applied to the visual representation of the execution environment prior to being communicated to the first device.

35. A first device comprising: a processor; and a memory in communication with the processor, the memory comprising executable instructions that when executed by the processor cause the processor to control the first device to perform the following functions: while the first device is in a locked state that restricts access to the first device, receive, via a signal connection from a second device, a request to project visual content from the second device to the first device, wherein the access to the first device requires a valid authentication to transition from the locked state to an unlocked state; determine that the second device has permission to project the visual content to the first device; receive, via the signal connection from the second device, data for projecting the visual content to the first device; and based on the received data, display the visual content on a display. the instructions, when executed by the processor, further cause the processor to control the first device to perform the function of broadcasting availability of the first device to the second device while the first device is in the locked state.

36. The first device of claim 35, wherein, the instructions, when executed by the processor, further cause the processor to control the first device to perform the function of determining that the first device has permission to broadcast availability of the first device.

37. The first device of claim 36, wherein, 38. The first device of claim 37, wherein: the signal connection comprises a wireless network, and to determine that the first device has the permission to broadcast, the instructions, when executed by the processor, further cause the processor to control the first device to perform the functions of: determining an identity of the wireless network; and determining that the determined identity of the wireless network is associated with the permission to broadcast. to determine that the first device has the permission to broadcast, the instructions, when executed by the processor, further cause the processor to control the first device to perform the functions of:

39. The first device of claim 37, wherein, determining a type of the signal connection; and determining that the determined type of the signal connection is associated with the permission to broadcast. the instructions, when executed by the processor, further cause the processor to control the first device to perform the functions of:

40. The first device of claim 39, wherein, detecting a change in the type of the signal connection from a first signal connection type to a second signal connection type; determining that the second signal connection type is not associated with the permission to broadcast; and based on the determination that the second signal connection type is not associated with the permission to broadcast, stop broadcasting availability of the first device.

41. The first device of claim 35, wherein: the request comprises a device identifier of the second device, and to determine that the second device has the permission to project, the instructions, when executed by the processor, further cause the processor to control the first device to perform the function of determining that the device identifier of the second device is associated with the permission to project. ​ 42. The first device of claim 35, wherein, the instructions, when executed by the processor, further cause the processor to control the first device to perform a function of displaying, via the display, scannable information recognizable by the second device to extract information usable to generate the request to project the visual content.

43. The first device of claim 35, wherein, the first device includes the display.

44. A method of operating a first device, comprising: receiving, from a second device via a signal connection, a request to project visual content from the second device while the first device is in a locked state that restricts access to the first device, wherein the access to the first device requires a valid authentication to transition from the locked state to an unlocked state; determining that the second device has permission to project the visual content to the first device; receiving, from the second device via the signal connection, data for projecting the visual content to the first device; and displaying, on a display, the visual content based on the received data.

45. The method of claim 44, further comprising broadcasting, to the second device, availability of the first device while the first device is in the locked state.

46. The method of claim 45, further comprising determining that the first device has permission to broadcast availability of the first device.

47. The method of claim 46, wherein: the signal connection comprises a wireless network, and determining that the first device has permission to broadcast availability of the first device comprises: determining an identity of the wireless network; and determining that the determined identity of the wireless network is associated with the permission to broadcast.

48. The method of claim 46, wherein, determining that the first device has permission to broadcast availability of the first device comprises: determining a type of the signal connection; and determining that the determined type of the signal connection is associated with the permission to broadcast.

49. The method of claim 48, further comprising: detecting a change in the type of the signal connection from a first signal connection type to a second signal connection type; determining that the second signal connection type is not associated with the permission to broadcast; and based on the determination that the second signal connection type is not associated with the permission to broadcast, ceasing to broadcast availability of the first device.

50. The method of claim 46, wherein: the request comprises a device identifier of the second device, and determining that the second device has the permission to project comprises determining that the device identifier of the second device is associated with the permission to project.

51. The method of claim 46, further comprising displaying, via the display, scannable information recognizable by the second device to extract information usable to generate the request to project the visual content.

52. The method of claim 46, wherein, the first device includes the display.

53. A non-transitory computer-readable medium containing instructions that, when executed by a processor, cause a first device to perform the following functions: while the first device is in the locked state to limit access to the first device, receiving, via the signal connection, a request from a second device to project visual content from the second device, wherein, the access to the first device requires a valid authentication to transition from the locked state to an unlocked state; determining that the second device has permission to project the visual content to the first device; receiving, from the second device via the signal connection, data for projecting the visual content to the first device; and displaying the visual content on a display based on the received data.

54. The non-transitory computer-readable medium of claim 53, wherein, the instructions, when executed by the processor, further cause the processor to control the first device to perform a function of broadcasting availability of the first device to the second device while the first device is in the locked state.