├── .gitignore ├── .openpublishing.publish.config.json ├── .openpublishing.redirection.json ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE-CODE ├── README.md ├── ThirdPartyNotices └── project-rome-docs ├── TOC.md ├── breadcrumb └── toc.yml ├── devicerelay ├── api-reference-for-android.md ├── api-reference-for-ios.md ├── how-to-guide-for-android.md ├── how-to-guide-for-ios.md ├── how-to-guide-for-microsoft-graph.md ├── how-to-guide-for-windows.md └── index.md ├── docfx.json ├── includes ├── android │ ├── create-setup-events-platform.md │ ├── create-setup-events-start-platform.md │ ├── dev-center-onboarding.md │ ├── dev-reqs.md │ ├── notification-init.md │ ├── notifications-app-registration-onboarding.md │ ├── notifications-dev-center-onboarding.md │ ├── notifications-notification-init.md │ ├── notifications-platfrom-init.md │ ├── preliminary-setup.md │ └── preliminary-setupActivities.md ├── auth-scopes.md ├── auth-scopesiOS.md ├── ios │ ├── create-setup-events-start-platform.md │ ├── dev-center-onboarding.md │ ├── notification-init.md │ ├── notifications-app-registration-onboarding.md │ ├── notifications-dev-center-onboarding.md │ ├── notifications-notification-init.md │ ├── notifications-platform-init.md │ └── preliminary-setup.md └── windows │ ├── notifications-app-registration-onboarding.md │ ├── notifications-dev-center-onboarding.md │ ├── notifications-notification-init.md │ └── notifications-platform-init.md ├── index.md ├── nearby-sharing ├── api-reference-for-android.md └── index.md ├── notifications ├── api-reference-for-android.md ├── api-reference-for-ios │ ├── index.md │ └── usernotifications │ │ ├── MCDUserNotification.md │ │ ├── MCDUserNotificationChannel.md │ │ ├── MCDUserNotificationPriority.md │ │ ├── MCDUserNotificationReadState.md │ │ ├── MCDUserNotificationReadStateFilter.md │ │ ├── MCDUserNotificationReader.md │ │ ├── MCDUserNotificationReaderOptions.md │ │ ├── MCDUserNotificationReaderStartPosition.md │ │ ├── MCDUserNotificationStatus.md │ │ ├── MCDUserNotificationStatusFilter.md │ │ ├── MCDUserNotificationUpdateResult.md │ │ ├── MCDUserNotificationUserActionState.md │ │ ├── MCDUserNotificationUserActionStateFilter.md │ │ └── index.md ├── api-reference-for-windows │ ├── index.md │ └── usernotifications │ │ ├── index.md │ │ ├── userNotification.md │ │ ├── userNotificationChannel.md │ │ ├── userNotificationReader.md │ │ ├── userNotificationReaderOptions.md │ │ └── userNotificationUpdateResults.md ├── how-to-guide-for-android.md ├── how-to-guide-for-ios.md ├── how-to-guide-for-windows.md ├── index.md ├── media │ ├── aad_registration_portal │ │ ├── aad_registration_portal.png │ │ ├── aad_registration_portal_permissions.png │ │ ├── permissions_1_user.png │ │ ├── permissions_2_devices.png │ │ ├── permissions_3_graph_notifications.png │ │ └── permissions_4_wns_push.png │ ├── dev_center_portal │ │ ├── dev_center_portal_1_overview.png │ │ ├── dev_center_portal_2_supported_platforms.png │ │ ├── dev_center_portal_3_app_ids.png │ │ ├── dev_center_portal_4_msa_aad_connections.png │ │ ├── dev_center_portal_5_push_credentials.png │ │ ├── dev_center_portal_6_domain_verification.png │ │ ├── firebase_overview.png │ │ └── firebase_push_creds.png │ └── msa_app_registration │ │ └── app_registration_portal.png ├── receiving-notifications.md └── sending-notifications.md ├── objectivec-api ├── connecteddevices │ ├── MCDConnectedDevicesAccessTokenInvalidatedEventArgs.md │ ├── MCDConnectedDevicesAccessTokenRequest.md │ ├── MCDConnectedDevicesAccessTokenRequestedEventArgs.md │ ├── MCDConnectedDevicesAccount.md │ ├── MCDConnectedDevicesAccountAddedStatus.md │ ├── MCDConnectedDevicesAccountManager.md │ ├── MCDConnectedDevicesAccountType.md │ ├── MCDConnectedDevicesAddAccountResult.md │ ├── MCDConnectedDevicesNotification.md │ ├── MCDConnectedDevicesNotificationRegistration.md │ ├── MCDConnectedDevicesNotificationRegistrationManager.md │ ├── MCDConnectedDevicesNotificationRegistrationResult.md │ ├── MCDConnectedDevicesNotificationRegistrationState.md │ ├── MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs.md │ ├── MCDConnectedDevicesNotificationRegistrationStatus.md │ ├── MCDConnectedDevicesNotificationType.md │ ├── MCDConnectedDevicesPlatform.md │ ├── MCDConnectedDevicesPlatformSettings.md │ ├── MCDConnectedDevicesProcessNotificationOperation.md │ ├── MCDConnectedDevicesRemoveAccountResult.md │ ├── MCDEvent.md │ ├── MCDEventSubscription.md │ └── index.md ├── remotesystems.commanding │ ├── MCDAppServiceClosedEventArgs.md │ ├── MCDAppServiceClosedStatus.md │ ├── MCDAppServiceConnection.md │ ├── MCDAppServiceConnectionOpenedInfo.md │ ├── MCDAppServiceConnectionStatus.md │ ├── MCDAppServiceProvider.md │ ├── MCDAppServiceRequest.md │ ├── MCDAppServiceRequestReceivedEventArgs.md │ ├── MCDAppServiceResponse.md │ ├── MCDAppServiceResponseStatus.md │ ├── MCDLaunchUriProvider.md │ ├── MCDRemoteLaunchUriStatus.md │ ├── MCDRemoteLauncher.md │ ├── MCDRemoteLauncherOptions.md │ ├── MCDRemoteSystemAppRegistration.md │ ├── MCDRemoteSystemAppRegistrationPublishResult.md │ ├── MCDRemoteSystemAppRegistrationPublishStatus.md │ ├── MCDRemoteSystemConnectionInfo.md │ ├── MCDRemoteSystemConnectionRequest.md │ ├── MCDStatelessAppServiceResponse.md │ ├── MCDStatelessAppServiceResponseStatus.md │ └── index.md ├── remotesystems │ ├── MCDAppServiceInfo.md │ ├── MCDRemoteSystem.md │ ├── MCDRemoteSystemAccountFilter.md │ ├── MCDRemoteSystemAddedEventArgs.md │ ├── MCDRemoteSystemApp.md │ ├── MCDRemoteSystemAuthorizationKind.md │ ├── MCDRemoteSystemAuthorizationKindFilter.md │ ├── MCDRemoteSystemDiscoveryType.md │ ├── MCDRemoteSystemDiscoveryTypeFilter.md │ ├── MCDRemoteSystemEnumerationCompletedEventArgs.md │ ├── MCDRemoteSystemFilter.md │ ├── MCDRemoteSystemKindFilter.md │ ├── MCDRemoteSystemKinds.md │ ├── MCDRemoteSystemLocalVisibilityKind.md │ ├── MCDRemoteSystemLocalVisibilityKindFilter.md │ ├── MCDRemoteSystemPlatform.md │ ├── MCDRemoteSystemPlatformFilter.md │ ├── MCDRemoteSystemRemovedEventArgs.md │ ├── MCDRemoteSystemStatus.md │ ├── MCDRemoteSystemStatusTypeFilter.md │ ├── MCDRemoteSystemUpdatedEventArgs.md │ ├── MCDRemoteSystemWatcher.md │ ├── MCDRemoteSystemWatcherError.md │ ├── MCDRemoteSystemWatcherErrorOccurredEventArgs.md │ └── index.md ├── userdata.useractivities │ ├── MCDUserActivity.md │ ├── MCDUserActivityAttribution.md │ ├── MCDUserActivityChannel.md │ ├── MCDUserActivitySession.md │ ├── MCDUserActivitySessionHistoryItem.md │ ├── MCDUserActivityVisualElements.md │ └── index.md └── userdata │ ├── MCDUserDataFeed.md │ ├── MCDUserDataFeedNotificationTypes.md │ ├── MCDUserDataFeedPlatforms.md │ ├── MCDUserDataFeedSyncScope.md │ ├── MCDUserDataFeedSyncScopeFlags.md │ ├── MCDUserDataFeedSyncStatus.md │ ├── MCDUserDataFeedSyncStatusChangedEventArgs.md │ └── index.md ├── project-rome ├── manifest.json └── xrefmap.yml ├── remote-sessions ├── how-to-guide-for-windows.md └── index.md └── user-activities ├── api-reference-for-android.md ├── api-reference-for-ios.md ├── how-to-guide-for-android.md ├── how-to-guide-for-ios.md ├── how-to-guide-for-microsoft-graph.md ├── how-to-guide-for-windows.md └── index.md /.gitignore: -------------------------------------------------------------------------------- 1 | log/ 2 | obj/ 3 | _site/ 4 | .optemp/ 5 | _themes*/ 6 | 7 | .openpublishing.buildcore.ps1 8 | project-rome-docs/Android/api-reference/device-relay/techreview.docx 9 | project-rome-docs/Android/api-reference/device-relay/~$chreview.docx 10 | project-rome-docs/Android/api-reference/device-relay/dir.txt 11 | project-rome-docs/Android/api-reference/relay/dir.txt 12 | project-rome-docs/Android/api-reference/relay/techreview.docx 13 | project-rome-docs/Android/api-reference/relay/base/asyncop_raw 14 | -------------------------------------------------------------------------------- /.openpublishing.publish.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "docsets_to_publish": [ 3 | { 4 | "docset_name": "project-rome", 5 | "build_source_folder": "project-rome-docs", 6 | "build_output_subfolder": "project-rome", 7 | "locale": "en-us", 8 | "monikers": [], 9 | "moniker_ranges": [], 10 | "open_to_public_contributors": true, 11 | "type_mapping": { 12 | "Conceptual": "Content", 13 | "ManagedReference": "Content", 14 | "RestApi": "Content" 15 | }, 16 | "build_entry_point": "docs", 17 | "template_folder": "_themes", 18 | "version": 0 19 | } 20 | ], 21 | "notification_subscribers": [], 22 | "sync_notification_subscribers": null, 23 | "branches_to_filter": [], 24 | "skip_source_output_uploading": false, 25 | "need_preview_pull_request": false, 26 | "contribution_branch_mappings": null, 27 | "dependent_repositories": [ 28 | { 29 | "path_to_root": "_themes", 30 | "url": "https://github.com/Microsoft/templates.docs.msft", 31 | "branch": "main", 32 | "branch_mapping": {} 33 | } 34 | ], 35 | "branch_target_mapping": null, 36 | "need_generate_pdf": false, 37 | "need_generate_intellisense": false, 38 | "need_generate_pdf_url_template": false, 39 | "docs_build_engine": { 40 | "name": "docfx_v3" 41 | } 42 | } -------------------------------------------------------------------------------- /LICENSE-CODE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) Microsoft Corporation 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 5 | associated documentation files (the "Software"), to deal in the Software without restriction, 6 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all copies or substantial 11 | portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT 14 | NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > **Note:** The contents of this repository are published to [Project Rome documentation](https://learn.microsoft.com/windows/project-rome/). 2 | 3 | ## What is this? 4 | [Project Rome](https://developer.microsoft.com/windows/project-rome) provides a set of cross-device and cross-platform features that developers can use to increase engagement in their apps and create experiences that center around people and their tasks rather than devices. The programming model comes in the form of API sets for Windows, Android, iOS, and Microsoft Graph. Both client and server-side applications can utilize Project Rome capabilities. 5 | 6 | ## Privacy 7 | See [Microsoft's privacy statement](https://privacy.microsoft.com/en-us/privacystatement/) for more information. 8 | 9 | ## Microsoft Open Source Code of Conduct 10 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 11 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 12 | -------------------------------------------------------------------------------- /ThirdPartyNotices: -------------------------------------------------------------------------------- 1 | ##Legal Notices 2 | Microsoft and any contributors grant you a license to the Microsoft documentation and other content 3 | in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode), 4 | see the [LICENSE](LICENSE) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the 5 | [LICENSE-CODE](LICENSE-CODE) file. 6 | 7 | Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation 8 | may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. 9 | The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. 10 | Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653. 11 | 12 | Privacy information can be found at https://privacy.microsoft.com/en-us/ 13 | 14 | Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, 15 | or trademarks, whether by implication, estoppel or otherwise. -------------------------------------------------------------------------------- /project-rome-docs/TOC.md: -------------------------------------------------------------------------------- 1 | # [Project Rome docs](index.md) 2 | 3 | ## [Device Relay](devicerelay/index.md) 4 | ### [How to guide for Android](devicerelay/how-to-guide-for-android.md) 5 | ### [API reference for Android](devicerelay/api-reference-for-android.md) 6 | ### [How to guide for iOS](devicerelay/how-to-guide-for-ios.md) 7 | ### [API reference for iOS](devicerelay/api-reference-for-ios.md) 8 | ### [How to guide for Windows](devicerelay/how-to-guide-for-windows.md) 9 | ### [How to guide for Microsoft Graph](devicerelay/how-to-guide-for-microsoft-graph.md) 10 | 11 | ## [User Activities](user-activities/index.md) 12 | ### [How to guide for Android](user-activities/how-to-guide-for-android.md) 13 | ### [API reference for Android](user-activities/api-reference-for-android.md) 14 | ### [How to guide for iOS](user-activities/how-to-guide-for-ios.md) 15 | ### [API reference for iOS](user-activities/api-reference-for-ios.md) 16 | ### [How to guide for Windows](user-activities/how-to-guide-for-windows.md) 17 | ### [How to guide for Microsoft Graph](user-activities/how-to-guide-for-microsoft-graph.md) 18 | 19 | ## [Notifications](notifications/index.md) 20 | ### [How to guide for Windows](notifications/how-to-guide-for-windows.md) 21 | ### [API reference for Windows](notifications//api-reference-for-windows/index.md) 22 | ### [How to guide for Android](notifications/how-to-guide-for-android.md) 23 | ### [API reference for Android](notifications/api-reference-for-android.md) 24 | ### [How to guide for iOS](notifications/how-to-guide-for-ios.md) 25 | ### [API reference for iOS](notifications/api-reference-for-ios/index.md) 26 | ### [How to guide for Microsoft Graph](notifications/sending-notifications.md) 27 | ### [API reference for Microsoft Graph](notifications/api-reference-for-windows/usernotifications/index.md) 28 | ### [Sending notifications using MS Graph APIs](notifications/sending-notifications.md) 29 | 30 | ## [Remote sessions](remote-sessions/index.md) 31 | ### [How to guide for Windows](remote-sessions/how-to-guide-for-windows.md) 32 | 33 | ## [Nearby sharing](nearby-sharing/index.md) 34 | ### [API reference for Android](nearby-sharing/api-reference-for-android.md) -------------------------------------------------------------------------------- /project-rome-docs/breadcrumb/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Docs 2 | tocHref: / 3 | topicHref: / 4 | items: 5 | - name: Windows 6 | tocHref: /windows/ 7 | topicHref: /windows/ 8 | items: -------------------------------------------------------------------------------- /project-rome-docs/devicerelay/api-reference-for-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android Commanding API reference 3 | description: Use the Android Commanding APIs to discover and connect with remote devices and applications through remote app launching and remote messaging. 4 | --- 5 | 6 | # Android Commanding API reference 7 | 8 | The following namespaces allow apps to discover and connect with remote devices and applications through remote app launching and remote messaging. 9 | 10 | ## Namespaces 11 | 12 | #### [ConnectedDevices](/java/api/com.microsoft.connecteddevices) 13 | #### [RemoteSystems](/java/api/com.microsoft.connecteddevices.remotesystems) 14 | #### [RemoteSystems.Commanding](/java/api/com.microsoft.connecteddevices.remotesystems.commanding) -------------------------------------------------------------------------------- /project-rome-docs/devicerelay/api-reference-for-ios.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: iOS Device Relay API reference 3 | description: Use the iOS Device Relay APIs to discover and connect with remote devices and applications through remote app launching and remote messaging. 4 | --- 5 | 6 | # iOS Device Relay API reference 7 | 8 | The following APIs allow apps to discover and connect with remote devices and applications through remote app launching and remote messaging. 9 | 10 | ## API groups 11 | 12 | #### [ConnectedDevices](../objectivec-api/connecteddevices/index.md) 13 | #### [RemoteSystems](../objectivec-api/remotesystems/index.md) 14 | #### [RemoteSystems.Commanding](../objectivec-api/remotesystems.commanding/index.md) -------------------------------------------------------------------------------- /project-rome-docs/devicerelay/how-to-guide-for-microsoft-graph.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using Microsoft Graph's Device Relay REST APIs 3 | description: Learn how to use Microsoft Graph's Device Relay REST APIs to discover your devices, launch apps, and interact with app services. 4 | --- 5 | 6 | # Using Microsoft Graph's Device Relay REST APIs 7 | 8 | Device Relay features can be implemented through REST API calls with Microsoft Graph. You can find more information and API reference documentation in the [Project Rome section of the Microsoft Graph docs](/graph/api/resources/project-rome-overview#devices). 9 | 10 | Implementing with Microsoft Graph allows you to discover your devices, launch apps, and interact with app services from any device capable of making HTTP requests. Microsoft Graph makes these scenarios simpler to implement than on the native platform SDKs, but it does not support all of the features Project Rome features or offer a native object model. -------------------------------------------------------------------------------- /project-rome-docs/devicerelay/how-to-guide-for-windows.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Implementing Device Relay for Windows 3 | description: Learn how to implement Device Relay for Windows apps. 4 | --- 5 | 6 | # Implementing Device Relay for Windows 7 | 8 | The Windows related how-to and API pages for Project Rome are included in the UWP section of Microsoft Learn. Check out the following articles to learn how to implement Device Relay for Windows apps: 9 | 10 | [How to guide for Windows](/windows/uwp/launch-resume/connected-apps-and-devices) 11 | 12 | [API reference for Windows](/uwp/api/Windows.System.RemoteSystems) -------------------------------------------------------------------------------- /project-rome-docs/devicerelay/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Initiate Actions Remotely - Device Relay 3 | description: Learn how to use a local device to initiate an action on a remote device, such as remote app launching. 4 | ms.topic: overview 5 | ms.custom: seodec2018 6 | --- 7 | 8 | # Device Relay 9 | 10 | Device Relay allows you to command or initiate actions remotely using a local device. 11 | 12 | Actions can include remote app launching, remote messaging, and the process of discovering and identifying remote systems to connect to. 13 | 14 | To get started with Device Relay scenarios on your client device, select your preferred development platform on the left navigation pane. 15 | 16 | > [!video https://www.youtube.com/embed/7jn-kooKE8U] -------------------------------------------------------------------------------- /project-rome-docs/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": { 3 | "content": [ 4 | { 5 | "files": [ 6 | "**/*.md" 7 | ], 8 | "exclude": [ 9 | "**/obj/**", 10 | "**/includes/**", 11 | "Android/api-reference/**", 12 | "README.md", 13 | "LICENSE", 14 | "LICENSE-CODE", 15 | "ThirdPartyNotices" 16 | ] 17 | }, 18 | { 19 | "files": [ 20 | "**/toc.yml" 21 | ], 22 | "src": "breadcrumb", 23 | "dest": "rome_bread" 24 | } 25 | ], 26 | "resource": [ 27 | { 28 | "files": [ 29 | "**/*.png", 30 | "**/*.jpg" 31 | ], 32 | "exclude": [ 33 | "**/obj/**", 34 | "**/includes/**" 35 | ] 36 | } 37 | ], 38 | "overwrite": [], 39 | "externalReference": [], 40 | "globalMetadata": { 41 | "ms.service": "connected-devices", 42 | "feedback_system": "Standard", 43 | "feedback_product_url": "https://www.microsoft.com/windowsinsider/feedbackhub/fb", 44 | "feedback_help_link_url": "https://learn.microsoft.com/answers/", 45 | "feedback_help_link_type": "get-help-at-qna", 46 | "breadcrumb_path": "~/breadcrumb/toc.yml", 47 | "extendBreadcrumb": true, 48 | "uhfHeaderId": "MSDocsHeader-Windows", 49 | "titleSuffix": "Project Rome", 50 | "ms.topic": "article", 51 | "ms.date": "01/29/2019", 52 | "ms.author": "jken", 53 | "author": "GrantMeStrength" 54 | }, 55 | "fileMetadata": {}, 56 | "template": [], 57 | "dest": "project-rome", 58 | "markdownEngineName": "markdig" 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /project-rome-docs/includes/android/create-setup-events-platform.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 6 | --- 7 | 8 | ### Create the platform 9 | 10 | To get started simply instantiate the platform. 11 | 12 | `ConnectedDevicesPlatform sPlatform = new ConnectedDevicesPlatform(context);` 13 | 14 | ## Subscribe to ConnectedDevicesAccountManager events to handle the user account 15 | 16 | The platform requires an authenticated user to access the platform. You'll need to subscribe to **ConnectedDevicesAccountManager** events to ensure a valid account is being used. 17 | 18 | ```Java 19 | ConnectedDevicesPlatform sPlatform.getAccountManager().accessTokenRequested().subscribe((accountManager, args) -> { 20 | 21 | // Get access token 22 | 23 | } 24 | ``` 25 | 26 | ```Java 27 | ConnectedDevicesPlatform sPlatform.getAccountManager().accessTokenInvalidated().subscribe((accountManager, args) -> { 28 | 29 | // Refresh and renew existing access token 30 | 31 | } 32 | ``` 33 | 34 | 35 | ### Subscribe to ConnectedDevicesNotificationRegistrationManager events 36 | 37 | Similarly, the platform uses notifications to deliver commands between devices. Therefore, you must subscribe to the **ConnectedDevicesNotificationRegistrationManager** events to ensure the cloud registration states are valid for the account being used. Verify the the state using **ConnectedDevicesNotificationRegistrationState** 38 | 39 | ```Java 40 | ConnectedDevicesPlatform sPlatform.getNotificationRegistrationManager().notificationRegistrationStateChanged().subscribe((notificationRegistrationManager, args) -> { 41 | 42 | // Check state using ConnectedDevicesNotificationRegistrationState enum 43 | 44 | } 45 | ``` 46 | -------------------------------------------------------------------------------- /project-rome-docs/includes/android/create-setup-events-start-platform.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 6 | --- 7 | 8 | ### Create the platform 9 | 10 | 11 | To get started simply instantiate the platform. 12 | 13 | `ConnectedDevicesPlatform sPlatform = new ConnectedDevicesPlatform(context);` 14 | 15 | ### Subscribe to ConnectedDevicesAccountManager events to handle the user account 16 | 17 | The platform requires an authenticated user to access the platform. You'll need to subscribe to **ConnectedDevicesAccountManager** events to ensure a valid account is being used. 18 | 19 | ```Java 20 | ConnectedDevicesPlatform sPlatform.getAccountManager().accessTokenRequested().subscribe((accountManager, args) -> { 21 | 22 | // Get access token 23 | } 24 | ``` 25 | 26 | ```Java 27 | ConnectedDevicesPlatform sPlatform.getAccountManager().accessTokenInvalidated().subscribe((accountManager, args) -> { 28 | 29 | // Refresh and renew existing access token 30 | } 31 | ``` 32 | 33 | 34 | ### Subscribe to ConnectedDevicesNotificationRegistrationManager events 35 | 36 | Similarly, the platform uses notifications to deliver commands between devices. Therefore, you must subscribe to the **ConnectedDevicesNotificationRegistrationManager** events to ensure the cloud registration states are valid for the account being used. Verify the the state using **ConnectedDevicesNotificationRegistrationState** 37 | 38 | ```Java 39 | ConnectedDevicesPlatform sPlatform.getNotificationRegistrationManager().notificationRegistrationStateChanged().subscribe((notificationRegistrationManager, args) -> { 40 | 41 | // Check state using ConnectedDevicesNotificationRegistrationState enum 42 | 43 | } 44 | ``` 45 | ### Start the platform 46 | Now that the platform is initialized and event handlers are in place, you are ready to start discovering remote system devices. 47 | 48 | `ConnectedDevicesPlatform sPlatform.start();` 49 | 50 | ### Retrieve user accounts known to the app 51 | 52 | It is important to ensure that the list of user accounts known to the app are properly synchronized with the **ConnectedDevicesAccountManager**. 53 | 54 | Use **ConnectedDevicesAccountManager.addAccountAsync** to add a new user account. 55 | 56 | ```Java 57 | public synchronized AsyncOperation addAccountToAccountManagerAsync(ConnectedDevicesAccount account) { 58 | return ConnectedDevicesPlatform sPlatform.getAccountManager().addAccountAsync(account); 59 | } 60 | ``` 61 | 62 | To remove an invalid account you can use **ConnectedDevicesAccountManager.removeAccountAsync** 63 | 64 | ```Java 65 | public synchronized AsyncOperation removeAccountToAccountManagerAsync(ConnectedDevicesAccount account) { 66 | return ConnectedDevicesPlatform sPlatform.getAccountManager().removeAccountAsync(account); 67 | } 68 | ``` 69 | -------------------------------------------------------------------------------- /project-rome-docs/includes/android/dev-reqs.md: -------------------------------------------------------------------------------- 1 | For all Connected Devices features, you will need an Android app development IDE and an Android device with one of the supported architectures (**armeabi-v7a**, **arm64-v8a**, **x86**, or **x86_64**) or an emulator. The system must be running Android 4.4.2 or later. -------------------------------------------------------------------------------- /project-rome-docs/includes/android/notifications-app-registration-onboarding.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: bbef84bf-a6b7-44be-879d-0fa6065e37b1 6 | --- 7 | 8 | ### MSA and AAD Authentication Registration 9 | 10 | Microsoft Account (MSA) or Azure Active Directory (AAD) authentication registration is required for all features of the SDK including Notifications, except for the Nearby sharing APIs. 11 | 12 | > [!NOTE] 13 | > Azure Active Directory (AAD) accounts are not supported with the Device Relay APIs. 14 | 15 | If you do not already have an MSA and wish to use one, register on [account.microsoft.com](https://account.microsoft.com/account). 16 | 17 | Next, if you are using MSA as the authentication and identity framework for your users, you must register your app with Microsoft by following the instructions on the [Application Registration Portal](https://apps.dev.microsoft.com/) (if you do not have a Microsoft developer account, you must create one first). You should receive a client ID string for your app; make sure to remember the location or save this. Later this will be used during Graph Notifications onboarding. 18 | Note that an app using MSA authentication needs to be registered as a Live SDK application as shown below. 19 | ![Application Registration Portal](../../notifications/media/msa_app_registration/app_registration_portal.png) 20 | 21 | If you're writing an app that uses AAD as work account or school account authentication and identity framework, you must register your app via [Azure Active Directory Authentication Libraries](/azure/active-directory/develop/active-directory-authentication-libraries) in order to get the client ID, as shown below. 22 | ![AAD Registration Portal](../../notifications/media/aad_registration_portal/aad_registration_portal.png) 23 | When creating a new app registration, there are a few permissions required in order to use Graph Notifications and other connected device platform capabilities. Please see below. 24 | ![AAD Registration Portal – Setting – Required Permissions](../../notifications/media/aad_registration_portal/aad_registration_portal_permissions.png) 25 | * Add user sign-in permission shown as below. 26 | ![Required Permissions – AAD User Profile](../../notifications/media/aad_registration_portal/permissions_1_user.png) 27 | * Add Command Service permissions for device information, shown as below. 28 | ![Required Permissions – Devices](../../notifications/media/aad_registration_portal/permissions_2_devices.png) 29 | * Add Graph Notifications permission under Activity Feed Service APIs, shown as below. 30 | ![Required Permissions – Devices](../../notifications/media/aad_registration_portal/permissions_3_graph_notifications.png) 31 | * At the end, if you are writing cross-platform application including an UWP app running on Windows, make sure to add Windows Notification Service permission, shown as below. 32 | ![Required Permissions – WNS](../../notifications/media/aad_registration_portal/permissions_4_wns_push.png) 33 | -------------------------------------------------------------------------------- /project-rome-docs/includes/android/preliminary-setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 6 | --- 7 | 8 | ## Preliminary setup for the Connected Devices Platform and Notifications 9 | 10 | Before implementing remote connectivity, there are a few steps you'll need to take to give your Android app the capability to connect to remote devices as well as send and receive notifications. 11 | 12 | ### Register your app 13 | 14 | Microsoft Account (MSA) or Azure Active Directory (AAD) authentication is required for almost all features of the Project Rome SDK (the exception being the nearby sharing APIs). If you do not already have an MSA and wish to use one, register on [account.microsoft.com](https://account.microsoft.com/account). 15 | 16 | > [!NOTE] 17 | > Azure Active Directory (AAD) accounts are not supported with the Device Relay APIs. 18 | 19 | Using your chosen authentication method, you must register your app with Microsoft by following the instructions on the [Application Registration Portal](https://apps.dev.microsoft.com/). If you do not have a Microsoft developer account, you will need to create one. 20 | 21 | When you register an app using an MSA, you should receive a client ID string. Save this for later. This will allow your app to access Microsoft's Connected Devices Platform resources. If you're using AAD, see [Azure Active Directory Authentication Libraries](/azure/active-directory/develop/active-directory-authentication-libraries) for instructions on getting the client ID string. 22 | 23 | ### Add the SDK 24 | 25 | Insert the following repository references into the *build.gradle* file at the root of your project. 26 | 27 | ```Java 28 | allprojects { 29 | repositories { 30 | jcenter() 31 | } 32 | } 33 | ``` 34 | Then, insert the following dependency into the _build.gradle_ file that is in your project folder. 35 | 36 | ```Java 37 | dependencies { 38 | ... 39 | implementation 'com.microsoft.connecteddevices:connecteddevices-sdk:+' 40 | } 41 | ``` 42 | 43 | In your project's *AndroidManifest.xml* file, add the following permissions inside the `` element (if they are not already present). This gives your app permission to connect to the Internet and to enable Bluetooth discovery on your device. 44 | 45 | Note that the Bluetooth-related permissions are only necessary for using Bluetooth discovery; they are not needed for the other features in the Connected Devices Platform. Additionally, `ACCESS_COARSE_LOCATION` is only required on Android SDKs 21 and later. On Android SDKs 23 and later, the developer must also prompt the user to grant location access at runtime. 46 | 47 | 48 | ```xml 49 | 50 | 51 | 52 | 53 | 54 | ``` 55 | 56 | Next, go to the activity class(es) where you would like the Connected Devices functionality to live. Import the the following packages. 57 | 58 | ```java 59 | import com.microsoft.connecteddevices; 60 | import com.microsoft.connecteddevices.remotesystems; 61 | import com.microsoft.connecteddevices.remotesystems.commanding; 62 | ``` 63 | -------------------------------------------------------------------------------- /project-rome-docs/includes/android/preliminary-setupActivities.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 6 | --- 7 | 8 | ## Preliminary setup for the Connected Devices Platform 9 | 10 | Before implementing remote connectivity, there are a few steps you'll need to take to give your Android app the capability to connect to remote devices. 11 | 12 | ### Sign-in 13 | 14 | Microsoft Account (MSA) or Azure Active Directory (AAD) authentication is required for all features of the SDK, except for the Nearby sharing APIs. 15 | 16 | If you do not already have an MSA and wish to use one, register on [account.microsoft.com](https://account.microsoft.com/account). 17 | 18 | Next, you must register your app with Microsoft by following the instructions on the [Application Registration Portal](https://apps.dev.microsoft.com/) (if you do not have a Microsoft developer account, you must create one first). You should receive a client ID string for your app; save this for later. This will allow your app to access Microsoft's Connected Devices Platform resources. If you're using AAD, see [Azure Active Directory Authentication Libraries](/azure/active-directory/develop/active-directory-authentication-libraries) for instructions on getting the client ID string. 19 | 20 | ### Add the SDK 21 | 22 | Insert the following repository references into the *build.gradle* file at the root of your project. 23 | 24 | ```Java 25 | allprojects { 26 | repositories { 27 | jcenter() 28 | maven { url 'https://maven.google.com' } 29 | maven { url 'https://projectrome.bintray.com/maven/' } 30 | } 31 | } 32 | ``` 33 | Then, insert the following dependency into the _build.gradle_ file that is in your project folder. 34 | 35 | ```Java 36 | dependencies { 37 | ... 38 | implementation 'com.microsoft.connecteddevices:connecteddevices-sdk:0.11.0' 39 | } 40 | ``` 41 | 42 | If you wish to use ProGuard in your app, add the ProGuard Rules for these new APIs. Create a file called *proguard-rules.txt* in the *App* folder of your project, and paste in the contents of [ProGuard_Rules_for_Android_Rome_SDK.txt](https://github.com/Microsoft/project-rome/blob/master/Android/ProGuard_Rules_for_Android_Rome_SDK.txt). 43 | 44 | In your project's *AndroidManifest.xml* file, add the following permissions inside the `` element (if they are not already present). This gives your app permission to connect to the Internet and to enable Bluetooth discovery on your device. 45 | 46 | ```xml 47 | 48 | 49 | 50 | 51 | 52 | ``` 53 | 54 | > [!NOTE] 55 | > The Bluetooth-related permissions are only necessary for using Bluetooth discovery; they are not needed for the other features in the Connected Devices Platform. Additionally, `ACCESS_COARSE_LOCATION` is only required on Android SDKs 21 and later. On Android SDKs 23 and later, the developer must also prompt the user to grant location access at runtime. 56 | 57 | Next, go to the activity class(es) where you would like the Connected Devices functionality to live. Import the the following namespaces. 58 | 59 | ```java 60 | import com.microsoft.connecteddevices; 61 | import com.microsoft.connecteddevices.useractivities; 62 | import com.microsoft.connecteddevices.userdata; 63 | ``` 64 | -------------------------------------------------------------------------------- /project-rome-docs/includes/auth-scopes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.assetid: 93f45482-14e4-4aec-8185-ee05b592215f 5 | --- 6 | 7 | ### Set up authentication and account management 8 | 9 | The Connected Devices Platform requires a valid OAuth token to be used in the registration process. You may use your preferred method of generating and managing the OAuth tokens. However, to help developers get started using the platform, we've included an authentication provider as a part of the [Android sample app](https://github.com/Microsoft/project-rome/tree/master/Android/samples) that generates and manages refresh tokens for your convenience. 10 | 11 | If you wish to implement the **[ConnectedDevicesAccountManager](/java/api/com.microsoft.connecteddevices.connecteddevicesaccountmanager)** interface yourself, take note of the following information: 12 | 13 | If you're using an MSA, you will need to include the following scopes in your sign-in request: `"wl.offline_access"`, `"ccs.ReadWrite"`, `"dds.read"`, `"dds.register"`, `"wns.connect"`, `"asimovrome.telemetry"`, and `"https://activity.windows.com/UserActivity.ReadWrite.CreatedByApp"`. 14 | 15 | If you're using an AAD account, you'll need to request the following audiences: `"https://cdpcs.access.microsoft.com"`, `"https://cs.dds.microsoft.com"`, `"https://wns.windows.com/"`, and `"https://activity.microsoft.com"`. 16 | 17 | > [!NOTE] 18 | > Azure Active Directory (AAD) accounts are not supported with the Device Relay APIs. 19 | 20 | Whether you use the provided **ConnectedDevicesAccountManager** implementation or not, if you are using AAD you'll need to specify the following permissions in your app's registration on the Azure portal (portal.azure.com > Azure Active Directory > App registrations): 21 | * Microsoft Activity Feed Service 22 | * Deliver and modify user notifications for this app 23 | * Read and write app activity to users' activity feed 24 | * Windows Notification Service 25 | * Connect your device to Windows Notification Service 26 | * Microsoft Device Directory Service 27 | * See your list of devices 28 | * Be added to your list of devices and apps 29 | * Microsoft Command Service 30 | * Communicate with user devices 31 | * Read user devices 32 | -------------------------------------------------------------------------------- /project-rome-docs/includes/auth-scopesiOS.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.assetid: 93f45482-14e4-4aec-8185-ee05b592215f 5 | --- 6 | 7 | ### Set up authentication and account management 8 | 9 | The Connected Devices Platform requires a valid OAuth token to be used in the registration process. You may use your preferred method of generating and managing the OAuth tokens. However, to help developers get started using the platform, we've included an authentication provider as a part of the [iOS sample app](https://github.com/microsoft/project-rome/tree/master/iOS/samples/SDKSample) that you can use to generate and manage refresh tokens in your app. 10 | 11 | If you do not use the provided code, you will need to implement the **[MCDConnectedDevicesAccountManager](../objectivec-api/connecteddevices/MCDConnectedDevicesAccountManager.md)** interface yourself. 12 | 13 | If you're using an MSA, include the following scopes in your sign-in request: `"wl.offline_access"`, `"ccs.ReadWrite"`, `"dds.read"`, `"dds.register"`, `"wns.connect"`, `"asimovrome.telemetry"`, and `"https://activity.windows.com/UserActivity.ReadWrite.CreatedByApp"`. 14 | 15 | > [!NOTE] 16 | > Azure Active Directory (AAD) accounts are not supported with the Device Relay APIs. 17 | 18 | If you're using an AAD account, you'll need to request the following audiences: `"https://cdpcs.access.microsoft.com"`, `"https://cs.dds.microsoft.com"`, `"https://wns.windows.com/"`, and `"https://activity.microsoft.com"`. 19 | 20 | Whether you use the provided **MCDConnectedDevicesAccountManager** implementation or not, if you are using AAD you'll need to specify the following permissions in your app's registration on the Azure portal (portal.azure.com > Azure Active Directory > App registrations): 21 | * Microsoft Activity Feed Service 22 | * Deliver and modify user notifications for this app 23 | * Read and write app activity to users' activity feed 24 | * Windows Notification Service 25 | * Connect your device to Windows Notification Service 26 | * Microsoft Device Directory Service 27 | * See your list of devices 28 | * Be added to your list of devices and apps 29 | * Microsoft Command Service 30 | * Communicate with user devices 31 | * Read user devices 32 | -------------------------------------------------------------------------------- /project-rome-docs/includes/ios/create-setup-events-start-platform.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 6 | --- 7 | 8 | ### Create an instance of the platform 9 | 10 | To get started simply instantiate the platform. 11 | 12 | `MCDConnectedDevicesPlatform* platform = [MCDConnectedDevicesPlatform new];` 13 | 14 | ### Subscribe to MCDConnectedDevicesAccountManager 15 | 16 | The platform requires an authenticated user to access the platform. You'll need to subscribe to **MCDConnectedDevicesAccountManager** events to ensure a valid account is being used. 17 | 18 | ```ObjectiveC 19 | [MCDConnectedDevicesPlatform* platform.accountManager.accessTokenRequested 20 | subscribe:^(MCDConnectedDevicesAccountManager* _Nonnull manager __unused, 21 | MCDConnectedDevicesAccessTokenRequestedEventArgs* _Nonnull request __unused) { 22 | 23 | // Get access token 24 | 25 | } 26 | ``` 27 | 28 | ```ObjectiveC 29 | [MCDConnectedDevicesPlatform* platform.platform.accountManager.accessTokenInvalidated 30 | subscribe:^(MCDConnectedDevicesAccountManager* _Nonnull manager __unused, 31 | MCDConnectedDevicesAccessTokenInvalidatedEventArgs* _Nonnull request) { 32 | 33 | // Refresh and renew existing access token 34 | 35 | } 36 | ``` 37 | 38 | ### Subscribe to MCDConnectedDevicesNotificationRegistrationManager 39 | 40 | Similarly, the platform uses notifications to deliver commands between devices. Therefore, you must subscribe to the **MCDConnectedDevicesNotificationRegistrationManager** events to ensure the cloud registration states are valid for the account being used. Verify the the state using **MCDConnectedDevicesNotificationRegistrationState** 41 | 42 | ```ObjectiveC 43 | [MCDConnectedDevicesPlatform* platform.notificationRegistrationManager.notificationRegistrationStateChanged 44 | subscribe:^(MCDConnectedDevicesNotificationRegistrationManager* manager __unused, 45 | MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs* args __unused) { 46 | 47 | // Check state using MCDConnectedDevicesNotificationRegistrationState enum 48 | 49 | } 50 | 51 | ``` 52 | 53 | ### Start the platform 54 | Now that the platform is initialized and event handlers are in place, you are ready to start discovering remote system devices. 55 | 56 | `[MCDConnectedDevicesPlatform* platform start];` 57 | 58 | ### Retrieve user accounts known to the app 59 | 60 | It is important to ensure that the list of user accounts known to the app are properly synchronized with the **MCDConnectedDevicesAccountManager**. 61 | 62 | Use **MCDConnectedDevicesAccountManager.addAccountAsync** to add a new user account. 63 | 64 | ```ObjectiveC 65 | [MCDConnectedDevicesPlatform* platform.accountManager 66 | addAccountAsync:self.mcdAccount 67 | callback:^(MCDConnectedDevicesAddAccountResult* _Nonnull result, NSError* _Nullable error) { 68 | 69 | // Check state using **MCDConnectedDevicesAccountAddedStatus** enum 70 | 71 | } 72 | ``` 73 | 74 | To remove an invalid account you can use **MCDConnectedDevicesAccountManager.removeAccountAsync** 75 | 76 | ```ObjectiveC 77 | [MCDConnectedDevicesPlatform* platform.accountManager 78 | removeAccountAsync:existingAccount 79 | callback:^(MCDConnectedDevicesRemoveAccountResult* _Nonnull result __unused, NSError* _Nullable error) { 80 | 81 | // Remove invalid user account 82 | 83 | } 84 | ``` 85 | -------------------------------------------------------------------------------- /project-rome-docs/includes/ios/notifications-app-registration-onboarding.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 771ceeb1-638f-4fba-8c34-953870b5d855 6 | --- 7 | 8 | ### MSA and AAD Authentication Registration 9 | 10 | > [!NOTE] 11 | > Azure Active Directory (AAD) accounts are not supported with the Device Relay APIs. 12 | 13 | If you do not already have an MSA and wish to use one, register on [account.microsoft.com](https://account.microsoft.com/account). 14 | 15 | Next, if you are using MSA as the authentication and identity framework for your users, you must register your app with Microsoft by following the instructions on the [Application Registration Portal](https://apps.dev.microsoft.com/) (if you do not have a Microsoft developer account, you must create one first). You should receive a client ID string for your app; make sure to remember the location or save this. Later this will be used during Graph Notifications onboarding. 16 | Note that an app using MSA authentication needs to be registered as a Live SDK application. 17 | ![Application Registration Portal](../../notifications/media/msa_app_registration/app_registration_portal.png) 18 | 19 | If you're writing an app that uses AAD as work account or school account authentication and identity framework, you must register your app via [Azure Active Directory Authentication Libraries](/azure/active-directory/develop/active-directory-authentication-libraries) in order to get the client ID. 20 | ![AAD Registration Portal](../../notifications/media/aad_registration_portal/aad_registration_portal.png) 21 | When creating a new app registration, there are a few permissions required in order to use Graph Notifications and other connected device platform capabilities. Please see below. 22 | ![AAD Registration Portal – Setting – Required Permissions](../../notifications/media/aad_registration_portal/aad_registration_portal_permissions.png) 23 | * Add user sign-in permission. 24 | ![Required Permissions – AAD User Profile](../../notifications/media/aad_registration_portal/permissions_1_user.png) 25 | * Add Command Service permissions for device information. 26 | ![Required Permissions – Devices](../../notifications/media/aad_registration_portal/permissions_2_devices.png) 27 | * Add Graph Notifications permission under Activity Feed Service APIs. 28 | ![Required Permissions – Devices](../../notifications/media/aad_registration_portal/permissions_3_graph_notifications.png) 29 | * At the end, if you are writing cross-platform application including an UWP app running on Windows, make sure to add Windows Notification Service permission. 30 | ![Required Permissions – WNS](../../notifications/media/aad_registration_portal/permissions_4_wns_push.png) 31 | -------------------------------------------------------------------------------- /project-rome-docs/includes/ios/notifications-platform-init.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: cf4bc236-1a9c-4192-b3fe-2d78331316c0 6 | --- 7 | 8 | ### Add the SDK 9 | 10 | The simplest way to add the Connected Devices Platform to your iOS app is by using the [CocoaPods](https://cocoapods.org/) dependency manager. Go to your iOS project's *Podfile* and insert the following entry: 11 | 12 | ```ObjectiveC 13 | platform :ios, "10.0" 14 | workspace 'iOSSample' 15 | 16 | target 'iOSSample' do 17 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks 18 | # use_frameworks! 19 | 20 | pod 'ProjectRomeSdk' 21 | 22 | # Pods for iOSSample 23 | ``` 24 | 25 | > [!NOTE] 26 | > In order to consume CocoaPod, you must use the _.xcworkspace_ file in your project. 27 | 28 | ## Initialize the Connected Devices platform 29 | 30 | Before any Connected Devices features can be used, the platform must be initialized within your app. 31 | 32 | You must instantiate the **MCDPlatform** class. The **MCDPlatform**'s `platformWithAccountProvider:` method takes two parameters: a **MCDUserAccountProvider** and a **MCDNotificationProvider**. The **MCDNotificationProvider** parameter is only needed for remote app hosting and User Activities, which are not covered in this guide. It can be left `nil` for now. 33 | 34 | The **MCDUserAccountProvider** is needed to deliver an OAuth 2.0 access token for the current user's access to the Connected Devices Platform. It will be called the first time the app is run and upon the expiration of a platform-managed refresh token. 35 | 36 | In order to help developers onboard with the platform more easily, we have provided account provider implementations for Android and iOS. These implementations, found in the [authentication provider sample](https://github.com/Microsoft/project-rome/tree/master/iOS/samples/account-provider-sample), can be used to obtain the OAuth 2.0 access token and refresh token for your app. 37 | 38 | [!INCLUDE [auth-scopes](../auth-scopes.md)] 39 | 40 | The following code from the sample app shows the initialization of the platform. 41 | 42 | ```ObjectiveC 43 | - (void)initializePlatform 44 | { 45 | // Only register for APNs if this app is enabled for push notifications 46 | NotificationProvider* notificationProvider; 47 | if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]) 48 | { 49 | notificationProvider = [AppDataSource sharedInstance].notificationProvider; 50 | } 51 | else 52 | { 53 | NSLog(@"Initializing platform without a notification provider!"); 54 | notificationProvider = nil; 55 | } 56 | 57 | // Initialize platform 58 | [AppDataSource sharedInstance].platform = [MCDPlatform platformWithAccountProvider:[AppDataSource sharedInstance].accountProvider notificationProvider:notificationProvider]; 59 | 60 | // ... 61 | } 62 | ``` 63 | 64 | Shut down the platform when your app exits the foreground by calling the `shutdownAsync:` method. 65 | -------------------------------------------------------------------------------- /project-rome-docs/includes/ios/preliminary-setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | description: include file 4 | ms.topic: include 5 | ms.assetid: 6 | --- 7 | 8 | ### Register your app 9 | 10 | Microsoft Account (MSA) or Azure Active Directory (AAD) authentication is required for almost all features of the Project Rome SDK (the exception being the nearby sharing APIs). If you do not already have an MSA and wish to use one, register on [account.microsoft.com](https://account.microsoft.com/account). 11 | 12 | > [!NOTE] 13 | > Azure Active Directory (AAD) accounts are not supported with the Device Relay APIs. 14 | 15 | Using your chosen authentication method, you must register your app with Microsoft by following the instructions on the [Application Registration Portal](https://apps.dev.microsoft.com/). If you do not have a Microsoft developer account, you will need to create one. 16 | 17 | When you register an app using an MSA, you should receive a client ID string. Save this for later. This will allow your app to access Microsoft's Connected Devices Platform resources. If you're using AAD, see [Azure Active Directory Authentication Libraries](/azure/active-directory/develop/active-directory-authentication-libraries) for instructions on getting the client ID string. 18 | 19 | ### Add the SDK 20 | 21 | The simplest way to add the Connected Devices Platform to your iOS app is by using the [CocoaPods](https://cocoapods.org/) dependency manager. Go to your iOS project's *Podfile* and insert the following entry: 22 | 23 | ```ObjectiveC 24 | platform :ios, "10.0" 25 | workspace 'iOSSample' 26 | 27 | target 'iOSSample' do 28 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks 29 | # use_frameworks! 30 | 31 | pod 'ProjectRomeSdk' 32 | 33 | # Pods for iOSSample 34 | ``` 35 | 36 | > [!NOTE] 37 | > In order to consume CocoaPod, you must use the _.xcworkspace_ file in your project. 38 | -------------------------------------------------------------------------------- /project-rome-docs/includes/windows/notifications-app-registration-onboarding.md: -------------------------------------------------------------------------------- 1 | ### MSA and AAD Authentication Registration 2 | 3 | Microsoft Account (MSA) or Azure Active Directory (AAD) authentication registration is required for all features of the SDK including Notifications, except for the Nearby sharing APIs. 4 | 5 | If you do not already have an MSA and wish to use one, register on [account.microsoft.com](https://account.microsoft.com/account). 6 | 7 | Next, if you are using MSA as the authentication and identity framework for your users, you must register your app with Microsoft by following the instructions on the [Application Registration Portal](https://apps.dev.microsoft.com/) (if you do not have a Microsoft developer account, you must create one first). You should receive a client ID string for your app; make sure to remember the location or save this. Later this will be used during Graph Notifications onboarding. 8 | Note that an app using MSA authentication needs to be registered as a Live SDK application as shown below. 9 | ![Application Registration Portal](../../notifications/media/msa_app_registration/app_registration_portal.png) 10 | 11 | If you're writing an app that uses AAD as work account or school account authentication and identity framework, you must register your app via [Azure Active Directory Authentication Libraries](/azure/active-directory/develop/active-directory-authentication-libraries) in order to get the client ID, as shown below. 12 | ![AAD Registration Portal](../../notifications/media/aad_registration_portal/aad_registration_portal.png) 13 | When creating a new app registration, there are a few permissions required in order to use Graph Notifications and other connected device platform capabilities. Please see below. 14 | ![AAD Registration Portal – Setting – Required Permissions](../../notifications/media/aad_registration_portal/aad_registration_portal_permissions.png) 15 | * Add user sign-in permission shown as below. 16 | ![Required Permissions – AAD User Profile](../../notifications/media/aad_registration_portal/permissions_1_user.png) 17 | * Add Command Service permissions for device information, shown as below. 18 | ![Required Permissions – Devices](../../notifications/media/aad_registration_portal/permissions_2_devices.png) 19 | * Add Graph Notifications permission under Activity Feed Service APIs, shown as below. 20 | ![Required Permissions – Devices](../../notifications/media/aad_registration_portal/permissions_3_graph_notifications.png) 21 | * At the end, if you are writing cross-platform application including an UWP app running on Windows, make sure to add Windows Notification Service permission, shown as below. 22 | ![Required Permissions – WNS](../../notifications/media/aad_registration_portal/permissions_4_wns_push.png) -------------------------------------------------------------------------------- /project-rome-docs/includes/windows/notifications-notification-init.md: -------------------------------------------------------------------------------- 1 | ### Associate the Connected Devices Platform with the native push notification for each platform. 2 | 3 | Like previously mentioned, the app clients need to provide knowledge about the native push notification pipeline being used for each platform to the client-side SDK and the Connected Devices Platform during the registration process, in order to allow Graph notification service to fan-out notifications to each app client endpoint when your app server publishes a user-targeting notification via MS Graph APIs. 4 | In the steps above, you initialized the Platform without **NotificationProvider** parameter. Here, you need to construct and pass in an object that implements **NotificationProvider**. Please see **GraphNotificationProvider.cs** from sample for details. 5 | 6 | 7 | 8 | Deliver this registration in your implementation of **NotificationProvider**. Then, the **Platform** initialization call should provide the local **Platform** with access to the push notification service, allowing your app to receive data from the MS Graph Notifications server-side. 9 | 10 | ### Pass incoming push notifications to the client SDK 11 | Now, you can handle incoming UserNotification payload inside the Windows native background task registered with PushNotificationTrigger, or in your listner of the [PushNotificationReceived event](/uwp/api/windows.networking.pushnotifications.pushnotificationchannel.pushnotificationreceived). 12 | 13 | For reasons including compliance, security, and potential optimizations, the incoming WNS raw notification coming from Graph Notifications server-side could often be a shoulder tap which doesn’t contain any data that is initially published by the app server. The retrieval of the actual notification content published by app server is hidden behind client-side SDK APIs. In this case, the SDK always asks the app client to pass the incoming WNS raw notification payload to the SDK. This allows the SDK to determine whether this is a notification for Graph Notifications scenarios or not (in case WNS raw push can also be used by the app client for other purposes). -------------------------------------------------------------------------------- /project-rome-docs/includes/windows/notifications-platform-init.md: -------------------------------------------------------------------------------- 1 | ### Add the SDK 2 | 3 | For Windows, Graph Notification SDK is made available to developers through a NuGet package instead of built-in OS Windows SDK in order to have better down-level support and more flexible release schedule. 4 | The NuGet package is published by msgraphsdkteam on nuget.org and can be found [here](https://www.nuget.org/profiles/msgraphsdkteam). 5 | 6 | For more details on including and consuming NuGet packages from your UWP app, please see these links. 7 | * [Use packages from nuget.org](/azure/devops/artifacts/nuget/upstream-sources?tabs=new-nav&view=vsts) 8 | * [Quickstart: Install and use a package in Visual Studio](/nuget/quickstart/install-and-use-a-package-in-visual-studio) 9 | 10 | 11 | 12 | 13 | Depending on which scenarios you implement, you many not need all of the namespaces. For Graph Notifications specifically, you will need the below namespaces as shown. 14 | 15 | 16 | ```C# 17 | using Microsoft.ConnectedDevices.Core; 18 | using Microsoft.ConnectedDevices.UserData; 19 | using Microsoft.ConnectedDevices.UserNotifications; 20 | 21 | ``` 22 | 23 | 24 | ### Initialize the Connected Devices Platform 25 | 26 | Before any Connected Devices features can be used, the platform must be initialized within your app. The initialization steps should occur in your main class' **OnLaunched** or **onActivated** method, because they are required before other Connected Devices scenarios can take place. 27 | 28 | You must instantiate the **ConnectedDevicesPlatform** class. The **ConnectedDevicesPlatform** constructor takes three parameters: the **Context** for the app, a **NotificationProvider**, and a **UserAccountProvider**. 29 | 30 | The **NotificationProvider** parameter is only needed for certain scenarios. In the case of using Microsoft Graph Notifications, it is required. Leave it empty for now and find out in next section on how to enable the client SDK to handle incoming user-centric notifications via native push channels. 31 | 32 | The **UserAccountProvider** is needed to deliver an OAuth 2.0 access token for the current user's access to the Connected Devices Platform. It will be called the first time the app is run and upon the expiration of a platform-managed refresh token. 33 | 34 | In order to help developers onboard with the platform more easily, we have provided account provider implementations for Windows in sample code, please make sure to check **MicrosoftAccountProvider.cs** for more details. 35 | 36 | Then you can construct a **Platform** instance. 37 | 38 | ```C# 39 | 40 | public async Task InstantiatePlatform() 41 | { 42 | var account = m_accoutProvider.SignedInAccount; 43 | 44 | if (m_feed == null) 45 | { 46 | await Task.Run(() => 47 | { 48 | lock (this) 49 | { 50 | if (m_feed == null) 51 | { 52 | m_platform = new ConnectedDevicesPlatform(m_accoutProvider, this); 53 | 54 | 55 | } 56 | } 57 | }); 58 | } 59 | } 60 | 61 | ``` 62 | 63 | You should shut down the platform when your app exits the foreground. 64 | 65 | ```C# 66 | 67 | public async void Reset() 68 | { 69 | if (m_platform != null) 70 | { 71 | await m_platform.ShutdownAsync(); 72 | m_platform = null; 73 | m_feed = null; 74 | m_newNotifications.Clear(); 75 | m_historicalNotifications.Clear(); 76 | } 77 | } 78 | 79 | ``` -------------------------------------------------------------------------------- /project-rome-docs/nearby-sharing/api-reference-for-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android Nearby sharing API reference 3 | description: Use the Android Nearby sharing APIs to allow your Android app to implement the Windows-based Nearby sharing feature. 4 | --- 5 | 6 | # Android Nearby sharing API reference 7 | 8 | The following namespaces contain APIs that allow an Android app to implement the Windows-based Nearby sharing feature. 9 | 10 | ## Namespaces 11 | 12 | #### [ConnectedDevices](/java/api/com.microsoft.connecteddevices) 13 | #### [NearShare](/java/api/com.microsoft.connecteddevices.remotesystems.commanding.nearshare) -------------------------------------------------------------------------------- /project-rome-docs/nearby-sharing/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Send Files to Nearby Devices - Nearby Sharing 3 | description: Learn about Nearby Sharing. Nearby Sharing is used to send files or websites to nearby devices using Bluetooth or WiFi. 4 | ms.topic: overview 5 | ms.custom: seodec2018 6 | --- 7 | 8 | # Nearby Sharing 9 | 10 | [Nearby sharing](https://blogs.windows.com/windowsexperience/2018/06/18/windows-10-tip-how-to-start-using-nearby-sharing-with-the-windows-10-april-2018-update/#SpPj2lqAq22UdMVS.97) allows apps to send files or websites to nearby devices using Bluetooth or WiFi. 11 | 12 | For an implemented example of Nearby Share, check out the NearShareStandalone example Android app in the [Project Rome samples repo](https://github.com/Microsoft/project-rome). 13 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android User Notifications API reference 3 | description: Use the Android UserNotifications APIs to receive and manage user notifications published by your app server via Microsoft Graph Notifications. 4 | --- 5 | 6 | # Android User Notifications API reference 7 | 8 | The following namespaces contain APIs that allow an app to receive and manage User Notifications that your app server publishes via Microsoft Graph targeted at users. 9 | 10 | ## Namespaces 11 | 12 | #### [ConnectedDevices](/java/api/com.microsoft.connecteddevices) 13 | #### [UserNotifications](/java/api/com.microsoft.connecteddevices.userdata.usernotifications) 14 | #### [UserData](/java/api/com.microsoft.connecteddevices.userdata) -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: API reference for iOS 3 | description: Use the APIs in the UserNotifications namespace for iOS to receive and manage user notifications published by your app server via Microsoft Graph Notifications. 4 | ms.custom: seodec18 5 | --- 6 | 7 | # API reference for iOS 8 | 9 | ``` 10 | usernotifications.h 11 | ``` 12 | 13 | The UserNotifications namespace for iOS contains APIs that allow an app to receive and manage user-targeted notifications published by your app server via Microsoft Graph Notifications. 14 | 15 | ### API groups 16 | [ConnectedDevices](../../objectivec-api/connecteddevices/index.md) 17 | 18 | [UserData](../../objectivec-api/userdata/index.md) 19 | 20 | [Graph Notification APIs](usernotifications/index.md) -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotification.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotification 3 | description: This class represents a user notification published by the app server via Graph Notifications and received by the app client. 4 | keywords: microsoft, ios, graph notifications, how-to ios, how-to iphone 5 | --- 6 | 7 | # class `MCDUserNotification` 8 | 9 | ``` 10 | @interface MCDUserNotification : NSObject 11 | ``` 12 | 13 | 14 | This class represent a single user notification instance. A user notification is created and published by your app server targeted at a user, distributed to all device endpoints of the same logged in user. 15 | A user notification, once received by the app client, can result in experiences such as generating and showing a visual notification banner using local notification APIs of the corresponding platform. 16 | 17 | ## Properties 18 | 19 | ### notificationId 20 | `@property(nonatomic, readonly, nonnull) NSString* notificationId;` 21 | Gets the developer specified unique id for this user notification. 22 | 23 | ### groupId 24 | `@property(nonatomic, readonly, nonnull) NSString* groupId;` 25 | Gets the developer specified group id for this user notification. 26 | 27 | ### expirationTime 28 | `@property(nonatomic, readonly, nonnull) NSDate* expirationTime;` 29 | Gets the expiration time for this user notification. 30 | 31 | ### status 32 | `@property(nonatomic, readonly) MCDUserNotificationStatus status;` 33 | Gets the status of the user notification. 34 | 35 | ### changeTime 36 | `@property(nonatomic, readonly, nonnull) NSDate* changeTime;` 37 | Gets the time the change was made. 38 | 39 | ### priority 40 | `@property(nonatomic, readonly) MCDUserNotificationPriority priority;` 41 | Gets the developer specified priority for this user notification. 42 | 43 | ### content 44 | `@property(nonatomic, readonly, nonnull) NSString* content;` 45 | Gets the content payload for this notification which is developer defined arbitrary data. 46 | 47 | ### readState 48 | `@property(nonatomic, assign, readwrite) MCDUserNotificationReadState readState;` 49 | Gets the value of the read state for this user notification that indicates the notification is read or unread. 50 | 51 | ### userActionState 52 | `@property(nonatomic, assign, readwrite) MCDUserNotificationUserActionState userActionState;` 53 | Gets the value of the user action state for a user notification to determine whether the notification is 54 | not interacted, dismissed, activated, or snoozed. 55 | 56 | ## Methods 57 | 58 | ### saveAsync 59 | `- (void)saveAsync:(nonnull void (^)(MCDUserNotificationUpdateStatus* _Nullable, NSError* _Nullable))completion;` 60 | 61 | This should be called when publishing user notification changes. This method should be called whenever 62 | the app modifies an updatable property of the UserNotification. 63 | 64 | #### Parameters 65 | * `completion` The code block to execute upon completion. 66 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationChannel.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationChannel 3 | description: Learn about the MCDUserNotificationChannel class. This class manages the life cycle of user notifications. 4 | keywords: microsoft, windows, device relay, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # class `MCDUserNotificationChannel` 8 | 9 | ``` 10 | @interface MCDUserNotificationChannel : NSObject 11 | ``` 12 | 13 | This class provides the notification change reader which handles the receiving and management of user notifications for the application. 14 | 15 | ## Properties 16 | 17 | ### syncScope 18 | `@property(class, readonly, nonnull) MCDUserDataFeedSyncScope* syncScope;` 19 | 20 | SyncScope used to ensure UserNotifications are included in the feed. 21 | 22 | ## Constructors 23 | 24 | ### channelWithUserDataFeed 25 | `+ (nullable instancetype)channelWithUserDataFeed:(nonnull MCDUserDataFeed*)userDataFeed;` 26 | 27 | #### Parameters 28 | 29 | ### userDataFeed 30 | The MCDUserDataFeed used to initialize this class. 31 | 32 | ### initWithUserDataFeed 33 | `- (nullable instancetype)initWithUserDataFeed:(nonnull MCDUserDataFeed*)userDataFeed;` 34 | 35 | ### userDataFeed 36 | The MCDUserDataFeed used to initialize this class. 37 | 38 | ## Methods 39 | 40 | ### createReader 41 | `- (MCDUserNotificationReader* _Nullable)createReader` 42 | 43 | Create a user notification reader to receive and manage user notifications published by app server. 44 | 45 | ### createReaderWithOptions 46 | `- (MCDUserNotificationReader* _Nullable)createReaderWithOptions:(MCDUserNotificationReaderOptions* _Nonnull)options` 47 | 48 | Create a user notification reader with options. 49 | 50 | ### createReaderWithState 51 | `- (MCDUserNotificationReader* _Nullable)createReaderWithState:(NSString* _Nonnull)readerState` 52 | 53 | Create a user notification reader to receive and manage user notifications published by app server. 54 | The reader will start at the provided tracking state. 55 | 56 | ### getUserNotificationAsync 57 | `- (void)getUserNotificationAsync:(NSString* _Nonnull)notificationId 58 | completion:(nonnull void (^)(MCDUserNotification* _Nullable, NSError* _Nullable))completion` 59 | 60 | Get a user notification based on its id. 61 | 62 | ### deleteUserNotificationAsync 63 | ``` 64 | - (void)deleteUserNotificationAsync:(NSString* _Nonnull)notificationId 65 | completion:(nonnull void (^)(MCDUserNotificationUpdateResult* _Nullable, NSError* _Nullable))completion 66 | ``` 67 | 68 | Delete a user notification based on its id. -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationPriority.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationPriority 3 | description: Learn about the MCDUserNotificationPriority enum. This enum contains values that describe the priority of a user notification. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationPriority` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationPriority) 11 | ``` 12 | 13 | Contains values that describe the priority of a user notification. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationPriorityNone |0| The priority is unknown.| 18 | | MCDUserNotificationPriorityHigh |1| The priority is high.| 19 | | MCDUserNotificationPriorityLow|2| The priority is low.| -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationReadState.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationReadState 3 | description: Learn about the MCDUserNotificationReadState enum. This enum contains values that describe the read state of a notification. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationReadState` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationReadState) 11 | ``` 12 | 13 | Contains values that describe the read state of a notification. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationReadStateUnread |0| The notification has not been read. | 18 | | MCDUserNotificationReadStateRead | 1| The notification has been read.| -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationReadStateFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationReadStateFilter 3 | description: Contains values that categorize notifications by read state (for filtered notification retrieval). 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationReadStateFilter` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationReadStateFilter) 11 | ``` 12 | 13 | Contains values that categorize notifications by read state (for filtered notification retrieval). 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationReadStateFilterAny | 0 | Include notifications regardless of read state.| 18 | | MCDUserNotificationReadStateFilterUnread | 1 | Include notifications that haven't been read.| 19 | | MCDUserNotificationReadStateFilterRead | 2 | Include notifications that have been read. | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationReader.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationReader 3 | description: This class provides new incoming user notifications and user notification updates. It also provides access to the collection of user notifications persisted in the Connected Device Platform. 4 | keywords: microsoft, windows, device relay, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # class `MCDUserNotificationReader` 8 | 9 | ``` 10 | @interface MCDUserNotificationReader : NSObject 11 | ``` 12 | 13 | This class provides new incoming user notifications and user notification updates. It also provides access to the collection of user notifications persisted in the Connected Device Platform. 14 | 15 | ## Properties 16 | 17 | ### serializedState 18 | `@property(nonatomic, readonly, nonnull) NSString* serializedState;` 19 | 20 | Returns the current state of the change reader. Can be used to construct a new reader starting from the same state. 21 | Based upon the last completed batch of notification changes (or initial state, if none have completed successfully). 22 | 23 | ### dataChanged 24 | `@property(nonatomic, readonly, nonnull) MCDEvent* dataChanged;` 25 | 26 | Event subscription for MCDUserNotificationReader changed. 27 | 28 | ## Methods 29 | 30 | ### readBatchAsyncWithMaxSize 31 | `- (void)readBatchAsyncWithMaxSize:(NSUInteger)maxBatchSize 32 | completion:(nonnull void (^)(NSArray* _Nullable, NSError* _Nullable))completion;` 33 | 34 | Read notification changes including new incoming notifications and updates on existing notifications in batch. -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationReaderOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationReaderOptions 3 | description: This class allows the app to provide options on the notification reader, such as only receiving new user notifications and not existing notification updates. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # class `MCDUserNotificationReaderOptions` 8 | 9 | ``` 10 | @interface MCDUserNotificationReaderOptions : NSObject 11 | ``` 12 | 13 | This class allows the app to provide options on the notification reader, such as only receiving new user notifications and not existing notification updates. 14 | 15 | ## Properties 16 | 17 | ### startPosition 18 | `@property(nonatomic, assign) MCDUserNotificationReaderStartPosition startPosition;` 19 | Get or set the start position for this instance of UserNotificationReaderOptions. 20 | 21 | ### statusFilter 22 | `@property(nonatomic, assign) MCDUserNotificationStatusFilter statusFilter;` 23 | Get or set the status filter for this user notification reader you desire to create. 24 | 25 | ### readStateFilter 26 | `@property(nonatomic, assign) MCDUserNotificationReadStateFilter readStateFilter;` 27 | Get or set the read state filter that’s set for this instance of UserNotificationReaderOptions 28 | 29 | ### userActionStateFilter 30 | `@property(nonatomic, assign) MCDUserNotificationUserActionStateFilter userActionStateFilter;` 31 | Getor set the user action state filter that’s set for this instance of UserNotificationReaderOptions. 32 | 33 | ## Constructors 34 | 35 | ### options 36 | `+ (nullable instancetype)options;` 37 | Creates and initializes a new instance of options for User Notifications. -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationReaderStartPosition.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationReaderStartPosition 3 | description: Contains values that determines the position where any new change in the reader starts – new incoming user notification or new incoming state updates. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationReaderStartPosition` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationReaderStartPosition) 11 | ``` 12 | 13 | Contains values that determines the position where any new change in the reader starts – new incoming user notification or new incoming state updates. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationReaderStartPositionBeginning |0| Start position at the beginning of the notification store. | 18 | | MCDUserNotificationReaderStartPositionEnd | 1| Start position at the end of the notification store. | 19 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationStatus 3 | description: Contains values that determines whether the notification is deleted or not. Deleted notifications will still be in the notification store and be returned by the reader before the platform cleanup happens. A corresponding reader filter UserNotificationStatusFilter can be applied to prevent these notifications from showing up in notification reader. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationStatus) 11 | ``` 12 | 13 | Contains values that determines whether the notification is deleted or not. Deleted notifications will still be in the notification store and be returned by the reader before the platform cleanup happens. A corresponding reader filter UserNotificationStatusFilter can be applied to prevent these notifications from showing up in notification reader. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationStatusActive |0| The notification is still active and persisted inside Connected Devices Platform store. | 18 | | MCDUserNotificationStatusDeleted | 1| The notification has been deleted.| -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationStatusFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationStatusFilter 3 | description: Contains values that indicates a read state filter when creating a notification reader. This determines whether the app wants to receive all notifications, only read ones, or only unread ones. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationStatusFilter` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationStatusFilter) 11 | ``` 12 | 13 | Contains values that indicates a read state filter when creating a notification reader. This determines whether the app wants to receive all notifications, only read ones, or only unread ones. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationStatusFilterAny | 0| Include all notifications regardless of status value. | 18 | | MCDUserNotificationStatusFilterActive |1| Include notifications that are active and persisted in Connected Devices Platform notification store. | 19 | | MCDUserNotificationStatusFilterDeleted | 2| Include deleted notifications only.| -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationUpdateResult.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationUpdateResult 3 | description: This class describes the status of an attempt to update a notification. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # class `MCDUserNotificationUpdateResult` 8 | 9 | ``` 10 | @interface MCDUserNotificationUpdateResult : NSObject 11 | ``` 12 | 13 | This class describes the status of an attempt to update a notification. 14 | 15 | ## Properties 16 | 17 | ### notificationId 18 | `@property(nonatomic, readonly, nonnull) NSString* notificationId;` 19 | 20 | The ID of the notification. 21 | 22 | ### succeeded 23 | `@property(nonatomic, readonly) Succeeded succeeded;` 24 | 25 | Whether the operation succeeded. -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationUserActionState.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationUserActionState 3 | description: Contains values describing the action a user has taken on a notification. 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationUserActionState` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationUserActionState) 11 | ``` 12 | 13 | Contains values describing the action a user has taken on a notification. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationUserActionStateNoInteraction |0| The user hasn't taken any action.| 18 | | MCDUserNotificationUserActionStateActivated|1|The user has activated the notification.| 19 | | MCDUserNotificationUserActionStateDismissed|2| The user has dismissed the notification.| 20 | | MCDUserNotificationUserActionStateSnoozed|3| The user has snoozed the notification.| 21 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/MCDUserNotificationUserActionStateFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserNotificationUserActionStateFilter 3 | description: Contains values that categorize notifications by user action state (for filtered notification retrieval). 4 | keywords: microsoft, windows, Graph Notifications, how-to iOS, how-to iPhone 5 | --- 6 | 7 | # enum `MCDUserNotificationUserActionStateFilter` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserNotificationUserActionStateFilter) 11 | ``` 12 | 13 | Contains values that categorize notifications by user action state (for filtered notification retrieval). 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserNotificationUserActionStateFilterAny|0| Include notifications regardless of user action state.| 18 | | MCDUserNotificationUserActionStateFilterNoInteraction |1| Include notifications that have not been acted on by the user.| 19 | | MCDUserNotificationUserActionStateFilterActivated|2| Include notifications that have been activated by the user.| 20 | | MCDUserNotificationUserActionStateFilterDismissed|3| Include notifications that have been dismissed by the user.| 21 | | MCDUserNotificationUserActionStateFilterSnoozed|4| Include notifications that have been snoozed by the user.| -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-ios/usernotifications/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotifications namespace for iOS 3 | description: Use the APIs in the UserNotifications namespace for iOS to receive and manage user notifications published by your app server via Microsoft Graph Notifications. 4 | --- 5 | 6 | # UserNotifications namespace for iOS 7 | 8 | ``` 9 | ConnectedDevicesUserDataUserNotifications.h 10 | ``` 11 | 12 | The UserNotifications namespace for iOS contains APIs that allow an app to receive and manage user-targeted notifications published by your app server via Microsoft Graph Notifications to enable human-centric, cross-device notification experiences. 13 | 14 | ### Graph Notifications APIs 15 | 16 | [MCDUserNotification](MCDUserNotification.md) 17 | 18 | [MCDUserNotificationChannel](MCDUserNotificationChannel.md) 19 | 20 | [MCDUserNotificationPriority](MCDUserNotificationPriority.md) 21 | 22 | [MCDUserNotificationReader](MCDUserNotificationReader.md) 23 | 24 | [MCDUserNotificationReaderOptions](MCDUserNotificationReaderOptions.md) 25 | 26 | [MCDUserNotificationReaderStartPosition](MCDUserNotificationReaderStartPosition.md) 27 | 28 | [MCDUserNotificationReadState](MCDUserNotificationReadState.md) 29 | 30 | [MCDUserNotificationReadStateFilter](MCDUserNotificationReadStateFilter.md) 31 | 32 | [MCDUserNotificationStatus](MCDUserNotificationStatus.md) 33 | 34 | [MCDUserNotificationStatusFilter](MCDUserNotificationStatusFilter.md) 35 | 36 | [MCDUserNotificationUpdateResult](MCDUserNotificationUpdateResult.md) 37 | 38 | [MCDUserNotificationUserActionState](MCDUserNotificationUserActionState.md) 39 | 40 | [MCDUserNotificationUserActionStateFilter](MCDUserNotificationUserActionStateFilter.md) 41 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: API reference for Windows 3 | description: Use the APIs in the UserNotifications namespace for Windows to receive and manage user notifications published by your app server via Microsoft Graph Notifications. 4 | ms.custom: seodec18 5 | --- 6 | 7 | # API reference for Windows 8 | 9 | ``` 10 | usernotifications.h 11 | ``` 12 | 13 | The UserNotifications namespace for Windows contains APIs that allow an app to receive and manage user-targeted notifications published by your app server via Microsoft Graph Notifications. 14 | 15 | ### API groups 16 | 17 | [Graph Notification APIs](usernotifications/index.md) 18 | 19 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/usernotifications/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotifications namespace for Windows 3 | description: Use the APIs in the UserNotifications namespace for Windows to receive and manage user notifications published by your app server via Microsoft Graph Notifications. 4 | --- 5 | 6 | # UserNotifications namespace for Windows 7 | 8 | winrt.Microsoft.ConnectedDevices.UserNotifications 9 | 10 | The UserNotifications namespace for Windows contains APIs that allow an app to receive and manage user-targeted notifications published by your app server via Microsoft Graph Notifications to enable human-centric, cross-device notification experiences. 11 | 12 | ## Graph Notifications APIs 13 | 14 | [UserNotification](userNotification.md) 15 | 16 | [UserNotificationChannel](userNotificationChannel.md) 17 | 18 | [UserNotificationReader](userNotificationReader.md) 19 | 20 | [UserNotificationReaderOptions](userNotificationReaderOptions.md) 21 | 22 | [UserNotificationUpdateResults](userNotificationUpdateResults.md) 23 | 24 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/usernotifications/userNotification.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotification 3 | description: This class represents a user notification published by the app server via Graph Notifications and received by the app client. 4 | keywords: microsoft, windows, graph notifications, how-to windows 5 | --- 6 | 7 | # class `UserNotification` 8 | 9 | ```C# 10 | public sealed class UserNotification : IUserNotification 11 | ``` 12 | 13 | This class represent a single user notification instance. A user notification is created and published by your app server targeted at a user, distributed to all device endpoints of the same logged in user. 14 | A user notification, once received by the app client, can result in experiences such as generating and showing a visual notification banner using local notification APIs of the corresponding platform. 15 | 16 | ## Properties 17 | 18 | |Name | Description | 19 | |:-- |:-- | 20 | |Id |Gets the developer specified unique id for this user notification.| 21 | | GroupId |Gets the developer specified group id for this user notification.| 22 | | ExpirationTime |Gets the expiration time for this user notification.| 23 | | Priority|Gets the developer specified priority for this user notification.| 24 | | Content|Gets the content payload for this notification which is developer defined arbitrary data.| 25 | | ReadState|Gets the value of the read state for this user notification that indicates the notification is read or unread.| 26 | | UserActionState|Gets the value of the user action state for a user notification to determine whether the notification is not interacted, dismissed, activated, or snoozed.| 27 | 28 | 29 | ## Methods 30 | 31 | ### SaveAsync() 32 | This should be called when publishing user notification changes. This method should be called whenever the app modifies an updatable property of the UserNotification. 33 | ```C# 34 | public IAsyncOperation SaveAsync() 35 | ``` 36 | 37 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/usernotifications/userNotificationChannel.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotificationChannel 3 | description: Learn about the UserNotificationChannel class. This class manages the life cycle of user notifications. 4 | keywords: microsoft, windows, Graph Notifications, how-to Windows 5 | --- 6 | 7 | # class `UserNotificationChannel` 8 | 9 | ```C# 10 | public sealed class UserNotificationChannel : IUserNotificationChannel 11 | ``` 12 | 13 | This class provides the notification change reader which handles the receiving and management of user notifications for the application. 14 | 15 | ## Methods 16 | 17 | ### CreateReader() 18 | Create a user notification reader to receive and manage user notifications published by app server. 19 | ```C# 20 | public UserNotificationReader CreateReader() 21 | ``` 22 | 23 | ### CreateReader(UserNotificationReaderOptions) 24 | Create a user notification reader with options 25 | ```C# 26 | public UserNotificationReader CreateReader(UserNotificationReaderOptions options) 27 | ``` 28 | 29 | ### CreateReaderWithState(String) 30 | Create a user notification reader to receive and manage user notifications published by app server. 31 | The reader will start at the provided tracking state. 32 | ```C# 33 | public UserNotificationReader CreateReaderWithState(String readerState) 34 | ``` 35 | 36 | ### GetUserNotificationAsync(String) 37 | Get a user notification based on its id. 38 | ```C# 39 | public IAsyncOperation GetUserNotificationAsync(String notificationId) 40 | ``` 41 | 42 | ### DeleteUserNotificationAsync(String) 43 | Get a user notification based on its id. 44 | ```C# 45 | public IAsyncOperation DeleteUserNotificationAsync(String notificationId) 46 | ``` 47 | 48 | ### SyncScope() 49 | Get the sync scope of this user notification channel. 50 | ```C# 51 | public static IUserDataFeedSyncScope SyncScope() 52 | ``` -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/usernotifications/userNotificationReader.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotificationReader 3 | description: This class provides new incoming user notifications and user notification updates. It also provides access to the collection of user notifications persisted in the Connected Device Platform. 4 | keywords: microsoft, windows, user notification, how-to windows 5 | --- 6 | 7 | # class `UserNotificationReader` 8 | 9 | ```C# 10 | public sealed class UserNotificationReader : IUserNotificationReader 11 | ``` 12 | 13 | This class provides new incoming user notifications and user notification updates. It also provides access to the collection of user notifications persisted in the Connected Device Platform. 14 | 15 | ## Methods 16 | 17 | ### ReadBatchAsync(Int32) 18 | Create a user notification reader to receive and manage user notifications published by app server. 19 | ```C# 20 | public IAsyncOperation> ReadBatchAsync(Int32 maxBatchSize) 21 | ``` 22 | 23 | ## Events 24 | 25 | 26 | ### DataChanged 27 | Raised when the reader completes sync with the server and has new change - new incoming UserNotifications or UserNotification updates to notify the app. 28 | 29 | ```C# 30 | public event TypedEventHandler DataChanged 31 | ``` 32 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/usernotifications/userNotificationReaderOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotificationReaderOptions 3 | description: This class allows the app to provide options on the notification reader, such as only receiving new user notifications and not existing notification updates. 4 | keywords: microsoft, windows, Graph Notifications, how-to Windows 5 | --- 6 | 7 | # class `UserNotificationReaderOptions` 8 | 9 | ```C# 10 | public sealed class UserNotificationReaderOptions : IUserNotificationReaderOptions 11 | ``` 12 | 13 | This class allows the app to provide options on the notification reader, such as only receiving new user notifications and not existing notification updates. 14 | 15 | ## Constructors 16 | 17 | ### UserNotificationReaderOptions 18 | Creates and initializes a new instance of UserNotificationReaderOptions. 19 | 20 | ```C# 21 | public UserNotificationReaderOptions() 22 | ``` 23 | 24 | ### UserNotificationReaderOptions(UserNotificationReaderStartPosition, UserNotificationStatusFilter, UserNotificationReadStateFilter, UserNotificationUserActionStateFilter) 25 | Creates and initializes a new instance of UserNotificationReaderOptions with filters and start position specified. 26 | 27 | ```C# 28 | public UserNotificationReaderOptions(UserNotificationReaderStartPosition startPosition, UserNotificationStatusFilter statusFilter, UserNotificationReadStateFilter readStateFilter, UserNotificationUserActionStateFilter userActionStateFilter) 29 | ``` 30 | 31 | ## Properties 32 | 33 | |Name | Description | 34 | |:-- |:-- | 35 | |StartPosition |Get or set the start position for this instance of UserNotificationReaderOptions.| 36 | | StatusFilter |Get or set the status filter for this user notification reader you desire to create.| 37 | | ReadStateFilter |Get or set the read state filter that’s set for this instance of UserNotificationReaderOptions.| 38 | | UserActionStateFilter|Getor set the user action state filter that’s set for this instance of UserNotificationReaderOptions.| 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/api-reference-for-windows/usernotifications/userNotificationUpdateResults.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserNotificationUpdateResults 3 | description: This class describes the status of an attempt to update a notification. 4 | keywords: microsoft, windows, Graph Notifications, how-to windows 5 | --- 6 | 7 | # class `UserNotificationUpdateResults` 8 | ```C# 9 | public sealed class UserNotificationUpdateResults : IUserNotificationUpdateResults 10 | ``` 11 | 12 | This class describes the status of an attempt to update a notification. 13 | 14 | ## Properties 15 | 16 | |Name | Description | 17 | |:-- |:-- | 18 | |NotificationId |The ID of the notification.| 19 | |Succeeded |Whether the operation succeeded.| 20 | -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/aad_registration_portal/aad_registration_portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/aad_registration_portal/aad_registration_portal.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/aad_registration_portal/aad_registration_portal_permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/aad_registration_portal/aad_registration_portal_permissions.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/aad_registration_portal/permissions_1_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/aad_registration_portal/permissions_1_user.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/aad_registration_portal/permissions_2_devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/aad_registration_portal/permissions_2_devices.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/aad_registration_portal/permissions_3_graph_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/aad_registration_portal/permissions_3_graph_notifications.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/aad_registration_portal/permissions_4_wns_push.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/aad_registration_portal/permissions_4_wns_push.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_1_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_1_overview.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_2_supported_platforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_2_supported_platforms.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_3_app_ids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_3_app_ids.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_4_msa_aad_connections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_4_msa_aad_connections.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_5_push_credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_5_push_credentials.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_6_domain_verification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/dev_center_portal_6_domain_verification.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/firebase_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/firebase_overview.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/dev_center_portal/firebase_push_creds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/dev_center_portal/firebase_push_creds.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/media/msa_app_registration/app_registration_portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/cross-device/cea8efc8723bcc926b5c8a5ae63413b4be2f94a1/project-rome-docs/notifications/media/msa_app_registration/app_registration_portal.png -------------------------------------------------------------------------------- /project-rome-docs/notifications/receiving-notifications.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Receiving notifications using the Project Rome SDK 3 | description: Learn how to use the Project Rome SDK to enable the receipt of MSGraph notifications in your app. 4 | --- 5 | 6 | 7 | # Receiving notifications using the Project Rome SDK 8 | 9 | The process of receiving MSGraph notifications is aligned across different development platforms. Based on the SDK language difference, we have separate guidelines. Select a platform below to learn how to enable notification retrieval in your app. 10 | 11 | * [Windows](how-to-guide-for-windows.md) 12 | * [Android](how-to-guide-for-android.md) 13 | * [iOS](how-to-guide-for-ios.md) -------------------------------------------------------------------------------- /project-rome-docs/notifications/sending-notifications.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sending notifications using Microsoft Graph APIs 3 | description: Integrate your apps with Microsoft Graph notifications in a few simple steps. 4 | ms.assetid: 8ff9cd93-a48e-4198-927f-3d7bd4b65f29 5 | ms.custom: seodec18 6 | --- 7 | 8 | # Sending notifications using Microsoft Graph APIs 9 | 10 | You can integrate your apps with Microsoft Graph notifications in a few simple steps - onboard your app via Windows Dev Center, use the Create notification method to publish notifications, and use the Project Rome SDK to receive and manage notifications on your app clients. 11 | 12 | To learn more about how to publish user notifications via Microsoft Graph, see the [notifications API reference](/graph/api/resources/notifications-api-overview). 13 | 14 | * [MS Graph APIs Overview](/graph/notifications-concept-overview) 15 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccessTokenInvalidatedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccessTokenInvalidatedEventArgs 3 | description: Inform that token associated with ConnectedDevicesAccount reported a token error. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesAccessTokenInvalidatedEventArgs` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesAccessTokenInvalidatedEventArgs : NSObject 11 | ``` 12 | Returned by MCDConnectedDevicesAccount to inform that the token associated with MCDConnectedDevicesAccount reported 13 | token error for the contained scopes. Token provider needs to either refresh their token cache or potentially pop up 14 | UI to ask user to sign in in order to fix their account setup. 15 | 16 | ## Properties 17 | 18 | ### account 19 | `@property (nonatomic, readonly, nonnull) MCDConnectedDevicesAccount* account;` 20 | 21 | The Account associated with this MCDConnectedDevicesAccessTokenInvalidatedEventArgs. 22 | 23 | ### scopes 24 | `@property (nonatomic, readonly, nonnull) NSArray* scopes;` 25 | 26 | The list of scopes for which the token must cover when generated. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccessTokenRequest.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccessTokenRequest 3 | description: Request for an access token for the contained MCDConnectedDevicesAccount which satisfies the contained scopes. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesAccessTokenRequest` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesAccessTokenRequest : NSObject 11 | ``` 12 | Request for an access token for the contained MCDConnectedDevicesAccount which satisfies the contained scopes. 13 | 14 | ## Properties 15 | 16 | ### account 17 | `@property (nonatomic, readonly, nonnull) MCDConnectedDevicesAccount* account;` 18 | 19 | The Account associated with this MCDConnectedDevicesAccessTokenInvalidatedEventArgs. 20 | 21 | ### scopes 22 | `@property (nonatomic, readonly, nonnull) NSArray* scopes;` 23 | 24 | The list of scopes for which the token must cover when generated. 25 | 26 | ## Methods 27 | 28 | ### completeWithAccessToken 29 | `- (void) completeWithAccessToken:(NSString* _Nonnull) token;` 30 | 31 | If a token with the requested scopes was successfully generated, call this method with the token to complete the request. 32 | 33 | #### Parameters 34 | * `token` 35 | 36 | Successfully generated token 37 | 38 | ### completeWithErrorMessage 39 | `- (void) completeWithErrorMessage:(NSString* _Nullable) errorMessage;` 40 | 41 | If a token with the requested scopes was not successfully generated for any reason, call this method with a message to be used for logging. 42 | 43 | #### Parameters 44 | * `errorMessage` 45 | 46 | A message describing why the token was unsuccessful. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccessTokenRequestedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccessTokenRequestedEventArgs 3 | description: Returned by MCDConnectedDevicesAccessTokenRequested, fired when there is a need to request a token. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesAccessTokenRequestedEventArgs` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesAccessTokenRequestedEventArgs : NSObject 11 | ``` 12 | 13 | Returned by MCDConnectedDevicesAccessTokenRequested, fired when there is a need to request a token. 14 | 15 | ## Properties 16 | 17 | ### request 18 | `@property (nonatomic, readonly, nonnull) MCDConnectedDevicesAccessTokenRequest* request;` 19 | 20 | The request associated with this MCDConnectedDevicesAccessTokenRequest. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccount.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccount 3 | description: Learn about the MCDConnectedDevicesAccount class. This class represents a single user account known by an app. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesAccount` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesAccount : NSObject 11 | ``` 12 | 13 | This class represents a single user account known by an app. 14 | 15 | ## Properties 16 | 17 | ### anonymousAccount 18 | `+ (nullable instancetype)anonymousAccount;` 19 | 20 | The singleton instance of the Anonymous account. 21 | 22 | ### accountId 23 | `@property(nonatomic, readonly, copy, nonnull) NSString* accountId;` 24 | 25 | The unique identifier for this user account. 26 | 27 | ### type 28 | `@property(nonatomic, readonly) MCDConnectedDevicesAccountType type;` 29 | 30 | A MCDConnectedDevicesAccountType value describing the type of account. 31 | 32 | ## Constructors 33 | 34 | ### accountWithAccountId 35 | `+ (nullable instancetype)accountWithAccountId:(nullable NSString*)accountId type:(MCDConnectedDevicesAccountType)type;` 36 | 37 | A new instance of this class with the unique identifier for this user account. 38 | 39 | #### Parameters 40 | 41 | * `accountId` 42 | 43 | A unique identifier string for this user account. 44 | 45 | `type` 46 | 47 | The MCDConnectedDevicesAccountType of the account (depends on which ID provider the account is from). 48 | 49 | #### Returns 50 | Returns an MCDConnectedDevicesAccount object with the account identifier. 51 | 52 | ### initWithAccountId 53 | `- (nullable instancetype)initWithAccountId:(nullable NSString*)accountId type:(MCDConnectedDevicesAccountType)type;` 54 | 55 | A new instance of this class with the unique identifier for this user account. 56 | 57 | #### Parameters 58 | * `type` 59 | 60 | The MCDConnectedDevicesAccountType of the account (depends on which ID provider the account is from). 61 | 62 | #### Returns 63 | Returns an MCDConnectedDevicesAccount object initialized with the account identifier. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccountAddedStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccountAddedStatus 3 | description: Learn about the MCDConnectedDevicesAccountAddedStatus enum. This enum contains values that describe the add account operation status. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDConnectedDevicesAccountAddedStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDConnectedDevicesAccountAddedStatus) 11 | ``` 12 | Contains the values that describe the add account operation status. 13 | 14 | ## Fields 15 | 16 | | Name | Value | Description | 17 | |:----------------------------------|:------|:-------------------------------| 18 | | MCDConnectedDevicesAccountAddedStatusSuccess | 0 | The account was successfully added to the platform. | 19 | | MCDConnectedDevicesAccountAddedStatusErrorNoNetwork | 1 | The account operation failed since Rome detected no network access. | 20 | | MCDConnectedDevicesAccountAddedStatusErrorServiceFailed | 2 | The account operation failed since Rome was unable to contact web services. | 21 | | MCDConnectedDevicesAccountAddedStatusErrorNoTokenRequestSubscriber | 3 | The account operation failed since the app didn't subscribe to the AccessTokenRequested event. | 22 | | MCDConnectedDevicesAccountAddedStatusErrorTokenRequestFailed | 4 | The account operation failed since the app failed to return a token when requested. | 23 | | MCDConnectedDevicesAccountAddedStatusErrorUnknown | 5 | The account operation failed for unknown reasons. | 24 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccountManager.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccountManager 3 | description: Provides a single entrypoint for all account-related features in the SDK. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesAccountManager` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesAccountManager : NSObject 11 | ``` 12 | Provides a single entrypoint for all account-related features in the SDK. 13 | 14 | ## Properties 15 | 16 | ### accessTokenRequested 17 | `@property(nonatomic, readonly, nonnull) MCDEvent* accessTokenRequested;` 18 | 19 | This event is fired when there is a need to request a token. This event should be subscribed and ready to respond before any request is sent out. 20 | 21 | ### accessTokenInvalidated 22 | `@property(nonatomic, readonly, nonnull) MCDEvent* accessTokenInvalidated;` 23 | 24 | This event is fired when a token consumer reports a token error. The token provider needs to either refresh their token cache or request a new user login to fix their account setup. 25 | 26 | ### allAccounts 27 | `@property (nonatomic, readonly, nonnull) NSArray* allAccounts;` 28 | 29 | All MCDConnectedDevicesAccount which are currently tracked by this manager. 30 | 31 | ## Methods 32 | 33 | ### addAccountAsync 34 | `- (void) addAccountAsync:(MCDConnectedDevicesAccount* _Nonnull)account callback:(nonnull void (^)(MCDConnectedDevicesAddAccountResult* _Nonnull, NSError* _Nullable))callback;` 35 | 36 | Add an account to account manager, callback will be invoked when it completes. 37 | 38 | #### Parameters 39 | * `callback` 40 | 41 | The callback result indicates if Account addition is successful or not. 42 | 43 | ### removeAccountAsync 44 | `- (void) removeAccountAsync:(MCDConnectedDevicesAccount* _Nonnull)account callback:(nonnull void (^)(MCDConnectedDevicesRemoveAccountResult* _Nonnull, NSError* _Nullable))callback;` 45 | 46 | Remove an account from account manager, callback will be invoked when it completes. 47 | 48 | #### Parameters 49 | * `callback` 50 | 51 | The callback result indicates if Account removal is successful or not. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAccountType.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAccountType 3 | description: Contains values that describe the type of Microsoft-provided user account. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDConnectedDevicesAccountType` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDConnectedDevicesAccountType) 11 | ``` 12 | 13 | Contains values that describe the type of Microsoft-provided user account. 14 | 15 | ## Fields 16 | 17 | | Name | Value | Description | 18 | |:----------------------------------|:------|:-------------------------------| 19 | | MCDConnectedDevicesAccountTypeAAD | 0 | Azure Active Directory workplace Account | 20 | | MCDConnectedDevicesAccountTypeMSA | 1 | Microsoft Personal Account | 21 | | MCDConnectedDevicesAccountTypeAnonymous | 2 | Anonymous (local, non-authenticated) Account | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesAddAccountResult.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesAddAccountResult 3 | description: "Learn about the MCDConnectedDevicesAddAccountResult class. See the property for the 'add account operation status'." 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesAddAccountResult` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesAddAccountResult : NSObject 11 | ``` 12 | Result of MCDConnectedDevicesAccountManager.addAccountAsync(). 13 | 14 | ## Properties 15 | 16 | ### status 17 | 18 | `@property(nonatomic, readonly) MCDConnectedDevicesAccountAddedStatus status;` 19 | 20 | Add account operation status. 21 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotification.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotification 3 | description: Learn about the MCDConnectedDevicesNotification class. This class is the result of processing a notification. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesNotification` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesNotification : NSObject 11 | ``` 12 | Result of processing a notification. 13 | 14 | ## Methods 15 | 16 | ### tryParse 17 | 18 | `+ (nullable instancetype)tryParse:(NSDictionary* _Nonnull)dictionary;` 19 | 20 | Attempts to parse a MCDConnectedDevicesNotification from an APNS formatted map. 21 | 22 | #### Parameters 23 | * `dictionary` 24 | 25 | The map received from the APNS notification to the Connected Devices platform for processing. 26 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotificationRegistration.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotificationRegistration 3 | description: This class represents the app's registration with a push notification service (necessary for some Project Rome scenarios). 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesNotificationRegistration` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesNotificationRegistration : NSObject 11 | ``` 12 | This class represents the app's registration with a push notification service (necessary for some Project Rome scenarios). It conveys this information to the Connected Devices Platform. 13 | 14 | ## Properties 15 | 16 | ### type 17 | `@property(nonatomic, readwrite) MCDConnectedDevicesNotificationType type;` 18 | 19 | The type of notifications in this setup. 20 | 21 | ### token 22 | `@property(nonatomic, readwrite, nonnull) NSString* token;` 23 | 24 | The registration token. 25 | 26 | ### appId 27 | `@property(nonatomic, readwrite, nonnull) NSString* appId;` 28 | 29 | The app ID for push notification registration. 30 | 31 | ### appDisplayName 32 | `@property(nonatomic, readwrite, nonnull) NSString* appDisplayName;` 33 | 34 | The app display name. This should be the name of the app that was used for registration 35 | on the Microsoft dev portal. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotificationRegistrationResult.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotificationRegistrationResult 3 | description: Communicates the async result of registering notification information for an account. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesNotificationRegistrationResult` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesNotificationRegistrationResult : NSObject 11 | ``` 12 | MCDConnectedDevicesNotificationRegistrationResult communicates the async result of registering notification information for an account. The error statuses communicated through this result should be used by the app to retry registration in the event of certain transient conditions like the network being unavailable. 13 | 14 | ## Properties 15 | 16 | ### status 17 | 18 | `@property(nonatomic, readonly) MCDConnectedDevicesNotificationRegistrationStatus status;` 19 | 20 | Status enum of the registration operation. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotificationRegistrationState.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotificationRegistrationState 3 | description: Learn about the MCDConnectedDevicesNotificationRegistrationState class. These values are used to communicate the status of cloud registration. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesNotificationRegistrationState` 8 | 9 | ``` 10 | typedef NS_ENUM(NSUInteger, MCDConnectedDevicesNotificationRegistrationState) 11 | ``` 12 | Values used to communicate the status of cloud registration. 13 | 14 | ## Fields 15 | 16 | | Name | Value | Description | 17 | |:----------------------------------|:------|:-------------------------------| 18 | | MCDConnectedDevicesNotificationRegistrationStateUnregistered | 0 | Registration has never been started. 19 | | MCDConnectedDevicesNotificationRegistrationStateRegistered | 1 | Registration has finished. | 20 | | MCDConnectedDevicesNotificationRegistrationStateExpiring | 2 | Registration is about to expire and so the app should perform registration again. | 21 | | MCDConnectedDevicesNotificationRegistrationStateExpired | 3 | Registration has expired and so the app must perform registration again. | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs 3 | description: Event Args class for the MCDConnectedDevicesNotificationRegistration State Changed event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs : NSObject 11 | ``` 12 | Event Args class for the MCDConnectedDevicesNotificationRegistration State Changed event. This is used to ensure that the application gets informed about new Connected Devices platform messages via the correct notification mechanism. 13 | 14 | ## Properties 15 | 16 | ### account 17 | `@property(nonatomic, readonly, nonnull) MCDConnectedDevicesAccount* account;` 18 | 19 | The Account for which the notification registration state has changed for. 20 | 21 | ### registration 22 | `@property(nonatomic, readonly, nonnull) MCDConnectedDevicesNotificationRegistration* registration;` 23 | 24 | The information for registration instance whose state has changed. 25 | 26 | ### state 27 | `@property(nonatomic, readonly) MCDConnectedDevicesNotificationRegistrationState state;` 28 | 29 | The new registration state. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotificationRegistrationStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotificationRegistrationStatus 3 | description: Learn about the MCDConnectedDevicesNotificationRegistrationStatus class. These values are used to communicate the status of cloud registration. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesNotificationRegistrationStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDConnectedDevicesNotificationRegistrationStatus) 11 | ``` 12 | Enumeration indicating the status of the registration operation. 13 | The error statuses indicate transient conditions where the app developer may want to retry registration. 14 | 15 | ## Fields 16 | 17 | | Name | Value | Description | 18 | |:----------------------------------|:------|:-------------------------------| 19 | | MCDConnectedDevicesNotificationRegistrationStatusSuccess | 0 | Operation completed successfully. 20 | | MCDConnectedDevicesNotificationRegistrationStatusErrorNoNetwork | 1 | Network was unavailable. | 21 | | MCDConnectedDevicesNotificationRegistrationStatusErrorWebFailure | 2 | A web service failed. | 22 | | MCDConnectedDevicesNotificationRegistrationStatusErrorNoTokenRequestSubscriber | 3 | No token request subscribers responded. | 23 | | MCDConnectedDevicesNotificationRegistrationStatusErrorTokenRequestFailed | 4 | The token request failed. | 24 | | MCDConnectedDevicesNotificationRegistrationStatusErrorAccountNotFound | 5 | Account to register information for was not found. | 25 | | MCDConnectedDevicesNotificationRegistrationStatusErrorUnknown | 6 | Operation encountered an unknown error. | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesNotificationType.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesNotificationType 3 | description: Learn about the MCDConnectedDevicesNotificationType enum. This enum contains values that describe the type (service) of a notification. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDConnectedDevicesNotificationType` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDConnectedDevicesNotificationType) 11 | ``` 12 | Contains values that describe the type (service) of a notification. 13 | 14 | ## Fields 15 | 16 | | Name | Value | Description | 17 | |:----------------------------------|:------|:-------------------------------| 18 | | MCDNotificationTypeUnknown | 0 | ConnectedDevicesNotificationType is unknown. | 19 | | MCDNotificationTypeWNS | 1 | Windows Push Notification Services. | 20 | | MCDNotificationTypeGCM | 2 | Google Cloud Messaging. | 21 | | MCDNotificationTypeFCM | 3 | Firebase Cloud Messaging.| 22 | | MCDNotificationTypeAPN | 4 | Apple Push Notification Service. | 23 | | MCDNotificationTypePolling | 5 | No cloud notification service; instead poll for incoming responses. | 24 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesPlatform.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesPlatform 3 | description: A class to represent the Connected Devices Platform and manage the app's connection to it. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesPlatform` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesPlatform : NSObject 11 | ``` 12 | This class to represent the Connected Devices Platform and manage the app's connection to it. 13 | 14 | ## Properties 15 | 16 | ### accountManager 17 | `@property (nonatomic, readonly, nonnull) MCDConnectedDevicesAccountManager* accountManager;` 18 | 19 | MCDConnectedDevicesAccountManager instance held by the platform. 20 | 21 | ### notificationRegistrationManager 22 | `@property (nonatomic, readonly, nonnull) MCDConnectedDevicesNotificationRegistrationManager* notificationRegistrationManager;` 23 | 24 | MCDConnectedDevicesNotificationRegistrationManager instance held by platform. 25 | 26 | ## Constructors 27 | 28 | ### platformWithSettings 29 | `+ (nullable instancetype)platformWithSettings:(MCDConnectedDevicesPlatformSettings* _Nonnull)settings;` 30 | 31 | A new instance of this class with specified platform settings. 32 | 33 | #### Parameters 34 | * `settings` 35 | 36 | The MCDConnectedDevicesPlatformSettings object which stores the app's settings of the platform. 37 | 38 | #### Returns 39 | 40 | Returns an MCDConnectedDevicesPlatform object containing the app's platform settings. 41 | 42 | ### initWithSettings 43 | `- (nullable instancetype)initWithSettings:(MCDConnectedDevicesPlatformSettings* _Nonnull)settings;` 44 | 45 | A new instance of this class with the platform settings. 46 | 47 | #### Parameters 48 | * `settings` 49 | 50 | The MCDConnectedDevicesPlatformSettings object which stores the app's settings of the platform. 51 | 52 | #### Returns 53 | 54 | Returns an MCDConnectedDevicesPlatform object initialized with the app's platform settings. 55 | 56 | ## Methods 57 | 58 | ### processNotification 59 | `- (MCDConnectedDevicesProcessNotificationOperation* _Nonnull)processNotification:(NSDictionary* _Nonnull)notification;` 60 | 61 | Process incoming APNs notification. 62 | 63 | #### Parameters 64 | * `notification` 65 | 66 | Contains the APNs notification to process. 67 | 68 | #### Returns 69 | 70 | An instance of the MCDConnectedDevicesProcessNotificationOperation class. 71 | 72 | ### start 73 | `- (void) start;` 74 | 75 | Start the platform. 76 | 77 | ### shutdownAsync 78 | `- (void)shutdownAsync:(void (^_Nonnull)(NSError* _Nullable))completionBlock;` 79 | 80 | Shuts down the Connected Devices Platform. 81 | 82 | #### Parameters 83 | * `completionBlock` 84 | 85 | The block to invoke upon completion. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesPlatformSettings.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesPlatformSettings 3 | description: An interface to allow Connected Devices Platform settings to be stored in a particular location. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesPlatformSettings` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesPlatformSettings : NSObject 11 | ``` 12 | An interface to allow Connected Devices Platform settings to be stored in a particular location. 13 | 14 | ## Properties 15 | 16 | ### storagePath 17 | `@property (nonatomic, readwrite, nonnull) NSString* storagePath;` 18 | 19 | The path to the storage location of the Connected Devices Platform settings. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesProcessNotificationOperation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesProcessNotificationOperation 3 | description: The result of giving a notification to the Rome platform for processing. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesProcessNotificationOperation` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesProcessNotificationOperation : NSObject 11 | ``` 12 | The result of giving an APNS notification to the Connected Devices platform for processing. 13 | 14 | > [!NOTE] 15 | > This class is deprecated, use MCDConnectedDevicesNotification instead. 16 | 17 | ## Properties 18 | 19 | ### connectedDevicesNotification 20 | `@property(nonatomic, readonly, getter=isConnectedDevicesNotification) BOOL connectedDevicesNotification;` 21 | 22 | This is a flag indicating whether the notification was intended for the Connected Devices platform. 23 | 24 | ## Methods 25 | 26 | ### waitForCompletionAsync 27 | `- (void)waitForCompletionAsync:(nonnull void (^)(NSError* _Nullable error))callback;` 28 | 29 | Wait for the notification to finish being handled. 30 | 31 | #### Parameters 32 | * `callback` 33 | 34 | The callback result for notification completion. 35 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDConnectedDevicesRemoveAccountResult.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDConnectedDevicesRemoveAccountResult 3 | description: Learn about the MCDConnectedDevicesRemoveAccountResult class. This class is the result of MCDConnectedDevicesAccountManager.removeAccountAsync(). 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDConnectedDevicesRemoveAccountResult` 8 | 9 | ``` 10 | @interface MCDConnectedDevicesRemoveAccountResult : NSObject 11 | ``` 12 | Result of MCDConnectedDevicesAccountManager.removeAccountAsync() -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDEvent.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDEvent 3 | description: This interface provides a simple event model. Events produce items consumed by EventListeners. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDEvent` 8 | 9 | ``` 10 | @interface MCDEvent<__covariant SourceType, __covariant ArgsType> : NSObject 11 | ``` 12 | 13 | This interface provides a simple event model. Events produce items consumed by EventListeners. 14 | The flow of event items is controlled by the MCDEventSubscription. 15 | 16 | ## Methods 17 | 18 | ### subscribe 19 | `- (nonnull MCDEventSubscription*)subscribe:(nonnull void (^)(SourceType _Nonnull, ArgsType _Nonnull))listener;` 20 | 21 | Subscribe to given events in the Connected Devices Platform. 22 | 23 | #### Parameters 24 | * `listener` 25 | 26 | Listen to MCDEventSubscriptions. 27 | 28 | #### Returns 29 | An instance of the MCDEventSubscription. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/MCDEventSubscription.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDEventSubscription 3 | description: Learn about the MCDEventSubscription class. This interface provides a simple way to manage an event subscription. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDEventSubscription` 8 | 9 | ``` 10 | @interface MCDEventSubscription : NSObject 11 | ``` 12 | This interface provides a simple event subscription. 13 | 14 | ## Methods 15 | 16 | ### cancel 17 | `- (void)cancel;` 18 | 19 | Cancels an event subscription. After making this call, the attached EventListener will 20 | not receive any more events (Already in flight events may still be delivered). 21 | Because much of the ConnectedDevices functionality is done in native code, it is important 22 | to either always ensure cancel is called or WeakReferences are used to ensure proper clean up 23 | of resources held by the EventListener. 24 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/connecteddevices/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ConnectedDevices namespace 3 | description: Use the APIs in the ConnectedDevices namespace to enable a client app to register with the platform. 4 | --- 5 | 6 | # ConnectedDevices namespace 7 | ``` 8 | ConnectedDevices.h 9 | ``` 10 | 11 | The ConnectedDevices namespace contains APIs that enable a client app to register with the platform. 12 | 13 | #### [MCDConnectedDevicesAccessTokenInvalidatedEventArgs](MCDConnectedDevicesAccessTokenInvalidatedEventArgs.md) 14 | #### [MCDConnectedDevicesAccessTokenRequest](MCDConnectedDevicesAccessTokenRequest.md) 15 | #### [MCDConnectedDevicesAccessTokenRequestedEventArgs](MCDConnectedDevicesAccessTokenRequestedEventArgs.md) 16 | #### [MCDConnectedDevicesAccount](MCDConnectedDevicesAccount.md) 17 | #### [MCDConnectedDevicesAccountAddedStatus](MCDConnectedDevicesAccountAddedStatus.md) 18 | #### [MCDConnectedDevicesAccountManager](MCDConnectedDevicesAccountManager.md) 19 | #### [MCDConnectedDevicesAccountType](MCDConnectedDevicesAccountType.md) 20 | #### [MCDConnectedDevicesAddAccountResult](MCDConnectedDevicesAddAccountResult.md) 21 | #### [MCDConnectedDevicesNotificationRegistration](MCDConnectedDevicesNotificationRegistration.md) 22 | #### [MCDConnectedDevicesNotificationRegistrationManager](MCDConnectedDevicesNotificationRegistrationManager.md) 23 | #### [MCDConnectedDevicesNotificationRegistrationState](MCDConnectedDevicesNotificationRegistrationState.md) 24 | #### [MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs](MCDConnectedDevicesNotificationRegistrationStateChangedEventArgs.md) 25 | #### [MCDConnectedDevicesNotificationType](MCDConnectedDevicesNotificationType.md) 26 | #### [MCDConnectedDevicesPlatform](MCDConnectedDevicesPlatform.md) 27 | #### [MCDConnectedDevicesPlatformSettings](MCDConnectedDevicesPlatformSettings.md) 28 | #### [MCDConnectedDevicesProcessNotificationOperation](MCDConnectedDevicesProcessNotificationOperation.md) 29 | #### [MCDConnectedDevicesRemoveAccountResult](MCDConnectedDevicesRemoveAccountResult.md) 30 | #### [MCDEvent](MCDEvent.md) 31 | #### [MCDEventSubscription](MCDEventSubscription.md) -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceClosedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceClosedEventArgs 3 | description: Returned by MCDAppServiceConnection.serviceClosed to inform that the MCDAppServiceConnection has been closed and provide a reason behind the close event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDAppServiceClosedEventArgs` 8 | 9 | ``` 10 | @interface MCDAppServiceClosedEventArgs : NSObject 11 | ``` 12 | 13 | Returned by MCDAppServiceConnection.serviceClosed to inform that the MCDAppServiceConnection has been closed and provide a reason behind the close event. 14 | 15 | ## Properties 16 | 17 | ### status 18 | `@property(nonatomic, readonly) MCDAppServiceClosedStatus status;` 19 | 20 | The status of how the app service closed. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceClosedStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceClosedStatus 3 | description: Contains values that describe a closed connection to a remote app service. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDAppServiceClosedStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDAppServiceClosedStatus) 11 | ``` 12 | 13 | Contains values that describe a closed connection to a remote app service. 14 | 15 | |Member |Value |Description | 16 | |--------|-------|-------------| 17 | |MCDAppServiceClosedStatusCompleted |0| The endpoint for the app service closed gracefully.| 18 | |MCDAppServiceClosedStatusCanceled |1| The endpoint for the app service was closed by the client or the system.| 19 | |MCDAppServiceClosedStatusResourceLimitsExceeded |2| The endpoint for the app service was closed because the endpoint ran out of resources.| 20 | |MCDAppServiceClosedStatusUnknown |3| An unknown error occurred.| -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceConnectionOpenedInfo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceConnectionOpenedInfo 3 | description: This class provides data for the MCDAppServiceProvider.connectionDidOpen event, which is raised when a remote device opens a connection to a local app service. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDAppServiceConnectionOpenedInfo` 8 | 9 | ``` 10 | @interface MCDAppServiceConnectionOpenedInfo : NSObject 11 | ``` 12 | 13 | This class provides data for the MCDAppServiceProvider.connectionDidOpen event, 14 | which is raised when a remote device opens a connection to a local app service. 15 | 16 | ## Properties 17 | 18 | ### appServiceConnection 19 | `@property(nonatomic, readonly, nonnull) MCDAppServiceConnection* appServiceConnection;` 20 | 21 | An MCDAppServiceConnection instance representing the connection between the local app service and the remote device. 22 | 23 | ### remoteSystemApp 24 | `@property(nonatomic, readonly, nullable) MCDRemoteSystemApp* remoteSystemApp;` 25 | 26 | The MCDRemoteSystemApp remote application that initiated a connection to the local app service. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceConnectionStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceConnectionStatus 3 | description: Contains values that describe the status of a connection to a remote app service. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDAppServiceConnectionStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDAppServiceConnectionStatus) 11 | ``` 12 | 13 | Contains values that describe the status of a connection to a remote app service. See [Create and consume an app service](/windows/uwp/launch-resume/how-to-create-and-consume-an-app-service) for information on app services on Windows devices. 14 | 15 | |Name |Value |Description | 16 | |--------|-------|-------------| 17 | |MCDAppServiceConnectionStatusSuccess | 0| The connection to the app service was opened successfully.| 18 | |MCDAppServiceConnectionStatusAppNotInstalled | 1| The package for the app service to which a connection was attempted is not installed on the device. Check that the package is installed before trying to open a connection to the app service.| 19 | |MCDAppServiceConnectionStatusAppUnavailable | 2| The package for the app service to which a connection was attempted is temporarily unavailable. Try to connect again later.| 20 | |MCDAppServiceConnectionStatusAppServiceUnavailable | 3| The app with the specified package ID is installed and available, but the app does not declare support for the specified app service. Check that the name of the app service and the version of the app are correct.| 21 | |MCDAppServiceConnectionStatusUnknown | 4| The connection could not be established for an unknown reason.| 22 | |MCDAppServiceConnectionStatusRemoteSystemUnavailable | 5| The target remote device or application is no longer available for connection.| 23 | |MCDAppServiceConnectionStatusRemoteSystemNotSupportedByApp | 6|The client app is not configured to support remote connectivity.| 24 | |MCDAppServiceConnectionStatusNotAuthorized | 7| The client device is not authorized to support remote connectivity. This may occur because the MCDAppServiceConnection was passed an invalid token.| -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceProvider.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceProvider 3 | description: This protocol contains methods for making a local app service accessible to remote devices. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # protocol `MCDAppServiceProvider` 8 | 9 | ``` 10 | @protocol MCDAppServiceProvider 11 | ``` 12 | 13 | This protocol contains methods for making a local app service accessible to remote devices. Developers must implement this protocol to make their app services available for remote connectivity. 14 | 15 | ## Properties 16 | 17 | ### appServiceInfo 18 | `@property(nonatomic, readonly, strong, nonnull) MCDAppServiceInfo* appServiceInfo;` 19 | 20 | The descriptive information about this app service. 21 | 22 | ## Methods 23 | 24 | ### connectionDidOpen 25 | `- (void)connectionDidOpen:(nonnull MCDAppServiceConnectionOpenedInfo*)openedInfo;` 26 | 27 | This method is called when a remote app service connection is opened to this app service. 28 | 29 | #### Parameters 30 | * `openedInfo` 31 | 32 | A MDCAppServiceConnectionOpenedInfo instance containing information for remote messaging with the app service. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceRequest.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceRequest 3 | description: Represents an incoming message from a remote app/device to this app service connection. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDAppServiceRequest` 8 | 9 | ``` 10 | @interface MCDAppServiceRequest : NSObject 11 | ``` 12 | Represents an incoming message from a remote app/device to this app service connection. 13 | 14 | ## Properties 15 | 16 | ### message 17 | `@property(nonatomic, readonly, nonnull) NSDictionary* message;` 18 | 19 | The message for the remote app service. 20 | 21 | ## Methods 22 | 23 | ### sendResponseAsync 24 | ``` 25 | - (void)sendResponseAsync:(nonnull NSDictionary*)message 26 | completion:(nonnull void (^)(MCDAppServiceResponseStatus, NSError* _Nullable))completion; 27 | ``` 28 | 29 | Sends a response message to the remote app service that sent the request. 30 | 31 | #### Parameters 32 | * `message` 33 | 34 | The message for the remote app service. 35 | 36 | * `completion` 37 | 38 | The completion of the asynchronous operation with an MCDAppServiceResponseStatus value indicating the status of the send operation. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceRequestReceivedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceRequestReceivedEventArgs 3 | description: "Learn about the MCDAppServiceRequestReceivedEventArgs class. This class contains data associated with a 'request received' event." 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDAppServiceRequestReceivedEventArgs` 8 | 9 | ``` 10 | @interface MCDAppServiceRequestReceivedEventArgs : NSObject 11 | ``` 12 | Contains data associated with a "request received" event. 13 | 14 | ## Properties 15 | 16 | ### request 17 | `@property(nonatomic, readonly, nonnull) MCDAppServiceRequest* request;` 18 | 19 | The request sent by the remote device. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceResponse.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceResponse 3 | description: A class that represents a response received from a connected remote app service. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDAppServiceResponse` 8 | 9 | ``` 10 | @interface MCDAppServiceResponse : NSObject 11 | ``` 12 | 13 | A class that represents a response received from a connected remote app service. 14 | 15 | ## Properties 16 | 17 | ### message 18 | `@property(nonatomic, readonly, nonnull) NSDictionary* message;` 19 | 20 | The message received from the remote app service. 21 | 22 | ### status 23 | `@property(nonatomic, readonly) MCDAppServiceResponseStatus status;` 24 | 25 | The status of the response received. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceResponseStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceResponseStatus 3 | description: Contains values that describe the status of a response message from a remote app service. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDAppServiceResponseStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDAppServiceResponseStatus) 11 | ``` 12 | 13 | Contains values that describe the status of a response message from a remote app service. 14 | 15 | |Name | Value | Description | 16 | |--------|-------------|-----| 17 | |MCDAppServiceResponseStatusSuccess |0| The app service successfully received and processed the message.| 18 | |MCDAppServiceResponseStatusFailure |1| The app service failed to receive and process the message.| 19 | |MCDAppServiceResponseStatusResourceLimitsExceeded |2| The app service exited because not enough resources were available.| 20 | |MCDAppServiceResponseStatusUnknown |3| An unknown error occurred.| 21 | |MCDAppServiceResponseStatusRemoteSystemUnavailable |4| The device to which the message was sent is not available.| 22 | |MCDAppServiceResponseStatusMessageTooLarge |5| The app service failed to process the message because it is too large.| 23 | |MCDAppServiceResponseStatusAppServiceConnectionClosed|6| The app service connection was closed before a response was sent.| -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDLaunchUriProvider.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDLaunchUriProvider 3 | description: Learn about the MCDLaunchUriProvider protocol. This protocol is used to manage the handling of a URI through launching an application. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # protocol `MCDLaunchUriProvider` 8 | 9 | ``` 10 | @protocol MCDLaunchUriProvider 11 | ``` 12 | 13 | This class manages the handling of a URI through the launching of an application. 14 | 15 | ## Properties 16 | ### supportedUriSchemes 17 | `@property(nonatomic, readonly, strong, nullable) NSArray* supportedUriSchemes;` 18 | 19 | An array of strings representing supported URI schemes. 20 | 21 | ## Methods 22 | 23 | ### onLaunchUriAsync 24 | ``` 25 | - (void)onLaunchUriAsync:(nonnull NSString*)uri 26 | options:(nullable MCDRemoteLauncherOptions*)options 27 | completion:(nonnull void (^)(BOOL, NSError* _Nullable))completionBlock; 28 | ``` 29 | 30 | This method is called when a remote device attempts to launch a URI on this device. 31 | 32 | #### Parameters 33 | * `uri` The URI to launch. 34 | * `options` A set of options for launching the URI. The fallback URI is only one of the possible options that can be set. 35 | * `completionBlock` The code block to execute upon completion. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteLaunchUriStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteLaunchUriStatus 3 | description: Contains values that describe the status of a remote app launch using a URI. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteLaunchUriStatus` 8 | 9 | `typedef NS_ENUM(NSInteger, MCDRemoteLaunchUriStatus)` 10 | 11 | Contains values that describe the status of a remote app launch using a URI. 12 | 13 | 14 | | Name |Value |Description | 15 | |------ |------- |--| 16 | |MCDRemoteLaunchUriStatusUnknown | 0| The status is unknown.| 17 | |MCDRemoteLaunchUriStatusSuccess | 1| The remote launch was successful.| 18 | |MCDRemoteLaunchUriStatusAppUnavailable | 2 | The target app is unavailable.| 19 | |MCDRemoteLaunchUriStatusProtocolUnavailable | 3 | The target app does not support this URI.| 20 | |MCDRemoteLaunchUriStatusRemoteSystemUnavailable | 4 | The device to which the message was sent is unavailable.| 21 | |MCDRemoteLaunchUriStatusValueSetTooLarge | 5 | The data bundle sent to the target app was too large.| 22 | |MCDRemoteLaunchUriStatusDeniedByLocalSystem | 6 | The client system has prevented use of the Remote Systems Platform.| 23 | |MCDRemoteLaunchUriStatusDeniedByRemoteSystem | 7 | The target device has prevented use of the Remote Systems Platform.| -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteLauncher.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteLauncher 3 | description: Learn about the MCDRemoteLauncher class. This class is used to launch an app on a remote device using a URI. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteLauncher` 8 | 9 | ``` 10 | @interface MCDRemoteLauncher : NSObject 11 | ``` 12 | 13 | A class used to launch an app on a remote device using a URI. 14 | 15 | 16 | ## Methods 17 | 18 | ### launchUriAsync 19 | ``` 20 | - (void)launchUriAsync:(nonnull NSString*)uri 21 | withConnectionRequest:(nonnull MCDRemoteSystemConnectionRequest*)connection 22 | completion:(nullable void (^)(MCDRemoteLaunchUriStatus result, NSError* _Nullable error))completionBlock; 23 | ``` 24 | 25 | Launches a URI against the Remote System specified in an [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md). 26 | 27 | #### Parameters 28 | * `uri` The URI which will cause the launching of an app. If the target is Windows, the target app will be chosen based on scheme. If the target is non-Windows, the target app will be chosen based on the MCDRemoteSystemConnectionRequest. 29 | 30 | * `connection` Specifies which remote system or application to connect to. 31 | * `completionBlock` The block to invoke upon completion. 32 | 33 | ### launchUriAsync 34 | ``` 35 | - (void)launchUriAsync:(nonnull NSString*)uri 36 | withConnectionRequest:(nonnull MCDRemoteSystemConnectionRequest*)connection 37 | options:(nullable MCDRemoteLauncherOptions*)options 38 | completion:(nullable void (^)(MCDRemoteLaunchUriStatus result, NSError* _Nullable error))completionBlock; 39 | ``` 40 | 41 | Launches a URI with options against the Remote System specified in an [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md). 42 | 43 | #### Parameters 44 | * `uri` The URI which will cause the launching of an app, according to its scheme. 45 | * `connection` Specifies which remote system or application to connect to. 46 | * `options` The launch specifications for the app. 47 | * `completionBlock` The block to invoke upon completion. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteLauncherOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteLauncherOptions 3 | description: Learn about the MCDRemoteLauncherOptions class. This class represents options for the remote launch feature. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteLauncherOptions` 8 | 9 | ``` 10 | @interface MCDRemoteLauncherOptions : NSObject 11 | ``` 12 | 13 | A class to represent options for the remote launch feature. 14 | 15 | ## Properties 16 | 17 | ### fallbackUri 18 | `@property(nonatomic, copy, nullable) NSString* fallbackUri;` 19 | 20 | The fallback URI to launch on the web in case the app launch URI fails. 21 | 22 | ### preferredPackageIds 23 | `@property(nonatomic, copy, nullable) NSArray* preferredPackageIds;` 24 | 25 | A list of **NSString** objects representing IDs of the apps that should be able to launch with this URI. For Windows apps, the ID will be the app's package family name. 26 | 27 | ## Constructors 28 | 29 | ### optionsWithFallbackUri 30 | `+ (nullable instancetype)optionsWithFallbackUri: (nullable NSString*)fallbackUri preferredPackageIds: (nullable NSArray*)preferredPackageIds;` 31 | 32 | Creates and initializes a new instance of this class. 33 | 34 | #### Parameters 35 | * `fallbackUri` 36 | 37 | The fallback URI to launch on the web in case the app launch URI fails. 38 | 39 | * `preferredPackageIds` 40 | 41 | A list of **NSString** objects representing IDs of the apps that should be able to launch with this URI. For Windows apps, the ID will be the app's package family name. 42 | 43 | #### Returns 44 | Returns the initialized [MCDRemoteLauncherOptions](MCDRemoteLauncherOptions.md) if successful, otherwise nil. 45 | 46 | ### initWithFallbackUri 47 | `- (nullable instancetype)initWithFallbackUri:(nullable NSString*)fallbackUri preferredPackageIds:(nullable NSArray*)preferredPackageIds;` 48 | 49 | Creates and initializes a new instance of this class. 50 | 51 | #### Parameters 52 | * `fallbackUri` 53 | 54 | The fallback URI to launch on the web in case the app launch URI fails. 55 | 56 | * `preferredPackageIds` 57 | 58 | A list of **NSString** objects representing IDs of the apps that should be able to launch with this URI. For Windows apps, the ID will be the app's package family name. 59 | 60 | #### Returns 61 | Returns the initialized [MCDRemoteLauncherOptions](MCDRemoteLauncherOptions.md) if successful, otherwise nil. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteSystemAppRegistration.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAppRegistration 3 | description: This class represents an application that is to be registered with the Connected Devices platform. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemAppRegistration` 8 | 9 | ``` 10 | @interface MCDRemoteSystemAppRegistration : NSObject 11 | ``` 12 | 13 | This class contains all of the information about this app that another could discover and use. 14 | 15 | > [!NOTE] 16 | > MCDRemoteSystemAppRegistration information must be published before any outgoing communication to another app is possble. This is so that the other application can know how to respond to that communication. 17 | 18 | ## Properties 19 | 20 | ### account 21 | `@property(nonatomic, readonly, nullable) MCDConnectedDevicesAccount* account;` 22 | 23 | Account that this registration belongs to. 24 | 25 | ### attributes 26 | `@property(nonatomic, copy, nullable) NSDictionary* attributes;` 27 | 28 | Dictionary of strings that describe the attributes of this app. 29 | 30 | ### appServiceProviders 31 | `@property(nonatomic, copy, nullable) NSArray>* appServiceProviders;` 32 | 33 | Array of AppServiceProviders that this app supports. 34 | 35 | > [!NOTE] 36 | > An app service provider must be present in this array in order to receive incoming connections. MCDRemoteSystemAppRegistration.publishAsync() does not need to be called for the app service provider to receive requests. 37 | 38 | ### launchUriProvider 39 | `@property(nonatomic, readwrite, nullable) id launchUriProvider;` 40 | 41 | Launch Uri provider for this app. 42 | 43 | > [!NOTE] 44 | > A launch uri provider must be stored in this property in order to receive incoming requests. MCDRemoteSystemAppRegistration.publishAsync() does not need to be called for the app service provider to receive requests. 45 | 46 | ## Constructors 47 | 48 | ### getForAccount 49 | `+(nullable instancetype) getForAccount:(MCDConnectedDevicesAccount* _Nonnull) account 50 | platform:(MCDConnectedDevicesPlatform* _Nonnull) platform;` 51 | 52 | Gets the current remote system app registration for the account. 53 | 54 | #### Parameters 55 | * `account` 56 | 57 | Account to retrieve the registration for. 58 | 59 | * `platform` 60 | 61 | Platform to get registration from. 62 | 63 | #### Returns 64 | Returns an MCDRemoteSystemAppRegistration object for the provided Account. 65 | 66 | ## Methods 67 | 68 | ### saveAsync 69 | `- (void)saveAsync:(nonnull void (^)(BOOL, NSError* _Nullable))callback __attribute__((deprecated("Use publishAsync instead")));` 70 | 71 | Saves the information currently stored in the RemoteSystemAppRegistration such that other applications can discover it. 72 | 73 | > [!NOTE] 74 | > MCDConnectedDevicesNotificationRegistration must be registered for this call to succeed. 75 | 76 | > [!WARNING] 77 | > Deprecated. Use publishAsync instead. 78 | 79 | #### Parameters 80 | 81 | * `callback` 82 | 83 | The callback indicates the result of saving the information. 84 | 85 | ### publishAsync 86 | `- (void)publishAsync:(nonnull void (^)(MCDRemoteSystemAppRegistrationPublishResult* _Nonnull, NSError* _Nullable))completionBlock;` 87 | 88 | Publishes the information currently stored in the MCDRemoteSystemAppRegistration such that other applications can discover it. 89 | 90 | > [!NOTE] 91 | > MCDConnectedDevicesNotificationRegistration must be registered for this call to succeed. 92 | 93 | #### Parameters 94 | 95 | * `callback` 96 | 97 | The callback indicates the result of saving the information. 98 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteSystemAppRegistrationPublishResult.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAppRegistrationPublishResult 3 | description: A class communicates the async result of publishing remote system app information for an account. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemAppRegistrationPublishResult` 8 | 9 | ``` 10 | @interface MCDRemoteSystemAppRegistrationPublishResult : NSObject 11 | ``` 12 | 13 | This class communicates the async result of publishing remote system app information for an account. The error statuses communicated through this result should be used by the app to retry publishing in the event of certain transient conditions like the network being unavailable. 14 | 15 | ## Properties 16 | 17 | ### status 18 | `@property(nonatomic, readonly) MCDRemoteSystemAppRegistrationPublishStatus status;` 19 | 20 | Status enum of the publish operation. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteSystemAppRegistrationPublishStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAppRegistrationPublishStatus 3 | description: Contains values that describe the status of a remote app launch using a URI. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteSystemAppRegistrationPublishStatus` 8 | 9 | `typedef NS_ENUM(NSInteger, MCDRemoteSystemAppRegistrationPublishStatus)` 10 | 11 | Enumeration indicating the status of the publish operation. 12 | The error statuses indicate transient conditions where the app developer may want to retry publishing. 13 | 14 | | Name |Value |Description | 15 | |------ |------- |--| 16 | |MCDRemoteSystemAppRegistrationPublishStatusSuccess | 0 | Operation completed successfully.| 17 | |MCDRemoteSystemAppRegistrationPublishStatusErrorNoNetwork | 1 | Network was unavailable. | 18 | |MCDRemoteSystemAppRegistrationPublishStatusErrorWebFailure | 2 | A web service failed.| 19 | |MCDRemoteSystemAppRegistrationPublishStatusErrorNoTokenRequestSubscriber | 3 | No token request subscribers responded.| 20 | |MCDRemoteSystemAppRegistrationPublishStatusErrorTokenRequestFailed | 4 | The token request failed.| 21 | |MCDRemoteSystemAppRegistrationPublishStatusErrorAccountNotFound | 5 | Account to publish information for was not found.| 22 | |MCDRemoteSystemAppRegistrationPublishStatusErrorUnknown | 6 | Operation encountered an unknown error.| -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteSystemConnectionInfo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemConnectionInfo 3 | description: A class that provides further information about a given MCDAppServiceConnection instance. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemConnectionInfo` 8 | 9 | ``` 10 | @interface MCDRemoteSystemConnectionInfo : NSObject 11 | ``` 12 | 13 | A class that provides further information about a given **[MCDAppServiceConnection](MCDAppServiceConnection.md)** instance. 14 | 15 | ## Properties 16 | 17 | ### proximal 18 | `@property(nonatomic, readonly, getter=isProximal) BOOL proximal;` 19 | 20 | Displays whether the associated connection is a proximal connection (**YES**) or not (**NO**). 21 | 22 | ## Constructors 23 | 24 | ### tryCreateFromAppServiceConnection 25 | `+ (nullable instancetype)tryCreateFromAppServiceConnection:(nonnull MCDAppServiceConnection*)appServiceConnection;` 26 | 27 | Creates an instance of this class from the given app service connection. 28 | 29 | #### Parameters 30 | * `appServiceConnection` 31 | 32 | An **MCDAppServiceConnection** instance. 33 | 34 | #### Returns 35 | Returns an instance of this class corresponding to the app service connection. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDRemoteSystemConnectionRequest.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemConnectionRequest 3 | description: A class that represents an attempt to communicate with a specific remote device or application. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemConnectionRequest` 8 | 9 | ``` 10 | @interface MCDRemoteSystemConnectionRequest : NSObject 11 | ``` 12 | 13 | A class that represents an attempt to communicate with a specific remote device or application. 14 | 15 | ## Constructors 16 | 17 | ### requestWithRemoteSystem 18 | `+ (instancetype)requestWithRemoteSystem:(nonnull MCDRemoteSystem*)remoteSystem;` 19 | 20 | Initializes the [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) with a [MCDRemoteSystem](../remotesystems/MCDRemoteSystem.md) instance. This constructor is not recommended, as it does not specify an app to target and therefore may result in an unexpected app being selected to service requests sent to the system. 21 | 22 | #### Parameters 23 | * `remoteSystem` 24 | 25 | The remote system to be targeted in this connection request. 26 | 27 | #### Returns 28 | Returns the initialized [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) if successful, otherwise nil. 29 | 30 | ### requestWithRemoteSystemApp 31 | `+ (instancetype)requestWithRemoteSystemApp:(nonnull MCDRemoteSystemApp*)remoteSystemApp;` 32 | 33 | Creates and initializes a new instance of this class. 34 | 35 | #### Parameters 36 | * `remoteSystemApp` 37 | 38 | The remote app to be targeted in this connection request. 39 | 40 | #### Returns 41 | Returns the initialized [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) if successful, otherwise nil. 42 | 43 | ### initWithRemoteSystem 44 | `- (nullable instancetype)initWithRemoteSystem:(nonnull MCDRemoteSystem*)remoteSystem;` 45 | 46 | Initializes the [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) with a [MCDRemoteSystem](../remotesystems/MCDRemoteSystem.md) instance. This constructor is not recommended, as it does not specify an app to target and therefore may result in an unexpected app being selected to service requests sent to the system. 47 | 48 | #### Parameters 49 | * `remoteSystem` The remote system to be targeted in this connection request. 50 | 51 | #### Returns 52 | Returns the initialized [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) if successful, otherwise nil. 53 | 54 | ### initWithRemoteSystemApp 55 | `- (nullable instancetype)initWithRemoteSystemApp:(nonnull MCDRemoteSystemApp*)remoteSystemApp;` 56 | 57 | Creates and initializes a new instance of this class. 58 | 59 | #### Parameters 60 | * `remoteSystemApp` 61 | 62 | The remote app to be targeted in this connection request. 63 | 64 | #### Returns 65 | Returns the initialized [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) if successful, otherwise nil. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDStatelessAppServiceResponse.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDStatelessAppServiceResponse 3 | description: Represents a message passed from a remote app service to the client app in response to a previous call to MCDAppServiceConnection.sendStatelessMessageAsync. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDStatelessAppServiceResponse` 8 | 9 | ``` 10 | @interface MCDStatelessAppServiceResponse : NSObject 11 | ``` 12 | 13 | Represents a message passed from a remote app service to the client app in response to a 14 | previous call to MCDAppServiceConnection.sendStatelessMessageAsync. 15 | 16 | 17 | ## Properties 18 | 19 | ### message 20 | `@property(nonatomic, readonly, nonnull) NSDictionary* message;` 21 | 22 | The message sent by the remote app service, consisting of key/value pairs. 23 | 24 | ### status 25 | `@property(nonatomic, readonly) MCDStatelessAppServiceResponseStatus status;` 26 | 27 | The status of the response from the remote app service. 28 | 29 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/MCDStatelessAppServiceResponseStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDStatelessAppServiceResponseStatus 3 | description: Contains values that describe the status of a message sent from one app service to another 4 | (whether the message data was successfully delivered). 5 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 6 | --- 7 | 8 | # enum `MCDStatelessAppServiceResponseStatus` 9 | 10 | `typedef NS_ENUM(NSInteger, MCDStatelessAppServiceResponseStatus)` 11 | 12 | Contains values that describe the status of a message sent from one app service to another 13 | (whether the message data was successfully delivered). 14 | 15 | 16 | | Name |Value |Description | 17 | |------ |------- |--| 18 | |MCDStatelessAppServiceResponseStatusSuccess | 0| The message was delivered successfully. | 19 | |MCDStatelessAppServiceResponseStatusAppNotInstalled | 1| The package for the app service to which a connection was attempted is not installed on the device. Check that the package is installed before trying to open a connection to theap p service. | 20 | |MCDStatelessAppServiceResponseStatusAppUnavailable | 2 | The package for the app service to which a connection was attempted is temporarily unavailable. Try to connect again later. | 21 | |MCDStatelessAppServiceResponseStatusAppServiceUnavailable | 3 | The app with the specified package ID is installed and available, but the app does not declare support for the specified app service. Check that the name of the app service and the version of the app are correct. | 22 | |MCDStatelessAppServiceResponseStatusRemoteSystemUnavailable | 4 | The message was not delivered because a connection to the remote device could not be established.| 23 | |MCDStatelessAppServiceResponseStatusRemoteSystemNotSupportedByApp | 5 | The remote app is not configured to support remote connectivity. | 24 | |MCDStatelessAppServiceResponseStatusNotAuthorized | 6 | The app service is not authorized to communicate with the remote device. | 25 | |MCDStatelessAppServiceResponseStatusResourceLimitsExceeded | 7 | The message was not delivered because it exceeded the program memory limits of the remote app service.| 26 | |MCDStatelessAppServiceResponseStatusMessageSizeTooLarge | 8 | The message was not delivered because it exceeded the allowed size. | 27 | |MCDStatelessAppServiceResponseStatusFailure | 9 | The message was not delivered due to network failure. | 28 | |MCDStatelessAppServiceResponseStatusUnknown | 10 |The messaged was not delivered for an unknown reason. | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems.commanding/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: RemoteSystems.Commanding namespace 3 | description: Use the APIs in the RemoteSystems namespace to send commands to a remote device, launch apps remotely, and perform remote messaging. 4 | --- 5 | 6 | # RemoteSystems.Commanding namespace 7 | ``` 8 | ConnectedDevicesRemoteSystemsCommanding.h 9 | ``` 10 | 11 | The RemoteSystems namespace contains APIs that allow a client app to send commands to a remote device. Actions can include remote app launching and remote messaging. 12 | 13 | #### [MCDAppServiceClosedEventArgs](MCDAppServiceClosedEventArgs.md) 14 | #### [MCDAppServiceClosedStatus](MCDAppServiceClosedStatus.md) 15 | #### [MCDAppServiceConnection](MCDAppServiceConnection.md) 16 | #### [MCDAppServiceConnectionOpenedInfo](MCDAppServiceConnectionOpenedInfo.md) 17 | #### [MCDAppServiceConnectionStatus](MCDAppServiceConnectionStatus.md) 18 | #### [MCDAppServiceProvider](MCDAppServiceProvider.md) 19 | #### [MCDAppServiceRequest](MCDAppServiceRequest.md) 20 | #### [MCDAppServiceRequestReceivedEventArgs](MCDAppServiceRequestReceivedEventArgs.md) 21 | #### [MCDAppServiceResponse](MCDAppServiceResponse.md) 22 | #### [MCDAppServiceResponseStatus](MCDAppServiceResponseStatus.md) 23 | #### [MCDLaunchUriProvider](MCDLaunchUriProvider.md) 24 | #### [MCDRemoteLauncher](MCDRemoteLauncher.md) 25 | #### [MCDRemoteLauncherOptions](MCDRemoteLauncherOptions.md) 26 | #### [MCDRemoteLaunchUriStatus](MCDRemoteLaunchUriStatus.md) 27 | #### [MCDRemoteSystemAppRegistration](MCDRemoteSystemAppRegistration.md) 28 | #### [MCDRemoteSystemConnectionInfo](MCDRemoteSystemConnectionInfo.md) 29 | #### [MCDRemoteSystemConnectionRequest](MCDRemoteSystemConnectionRequest.md) 30 | #### [MCDStatelessAppServiceResponse](MCDStatelessAppServiceResponse.md) 31 | #### [MCDStatelessAppServiceResponseStatus](MCDStatelessAppServiceResponseStatus.md) 32 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDAppServiceInfo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDAppServiceInfo 3 | description: This class describes an app service that belongs to a remote device or application. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDAppServiceInfo` 8 | 9 | ``` 10 | @interface MCDAppServiceInfo : NSObject 11 | ``` 12 | 13 | This class describes an app service that belongs to a remote device or application. 14 | 15 | ## Properties 16 | 17 | ### name 18 | `@property(nonatomic, readonly, nullable) NSString* name;` 19 | 20 | The name of the app service being described. 21 | 22 | ### packageId 23 | `@property(nonatomic, readonly, nullable) NSString* packageId;` 24 | 25 | The package ID of the app service being described. 26 | 27 | ## Constructors 28 | 29 | ### infoWithName 30 | `+ (nullable instancetype)infoWithName:(nonnull NSString*)name;` 31 | 32 | Initialize the class with information and name of the app service. 33 | 34 | #### Parameters 35 | * `name` 36 | 37 | The name of the app service being described. 38 | 39 | #### Returns 40 | Returns an MCDAppServiceInfo object containing the provided name. 41 | 42 | ### initWithName 43 | `- (nullable instancetype)initWithName:(nonnull NSString*)name;` 44 | 45 | Initialize the class with the name of the app service. 46 | 47 | #### Parameters 48 | * `name` 49 | 50 | The name of the app service being described. 51 | 52 | #### Returns 53 | Returns an MCDAppServiceInfo object initialized with the provided name. 54 | 55 | ### infoWithName 56 | `+ (nullable instancetype)infoWithName:(nonnull NSString*)name packageId:(nonnull NSString*)packageId;` 57 | 58 | Initialize the class with information and name of the app service. 59 | 60 | #### Parameters 61 | * `name` 62 | 63 | The name of the app service being described. 64 | 65 | * `packageId` 66 | 67 | The package ID of the app service being described. 68 | 69 | #### Returns 70 | Returns an MCDAppServiceInfo object containing the provided name. 71 | 72 | ### initWithName 73 | `- (nullable instancetype)initWithName:(nonnull NSString*)name packageId:(nonnull NSString*)packageId;` 74 | 75 | Initialize the class with the name of the app service. 76 | 77 | #### Parameters 78 | * `name` 79 | 80 | The name of the app service being described. 81 | 82 | * `packageId` 83 | 84 | The package ID of the app service being described. 85 | 86 | #### Returns 87 | Returns an MCDAppServiceInfo object initialized with the provided name. 88 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystem.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystem 3 | description: Learn about the MCDRemoteSystem class and its properties. This class is used to represent a remote system. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystem` 8 | 9 | ``` 10 | @interface MCDRemoteSystem : NSObject 11 | ``` 12 | 13 | A class to represent a remote system. 14 | 15 | ## Properties 16 | 17 | ### kind 18 | `@property(nonatomic, readonly, nonnull) NSString* kind;` 19 | 20 | The device type of this remote system. 21 | 22 | ### systemId 23 | `@property(nonatomic, readonly, nonnull) NSString* systemId;` 24 | 25 | The identifier for this remote system. 26 | 27 | ### displayName 28 | `@property(nonatomic, readonly, nonnull) NSString* displayName;` 29 | 30 | The name of the given remote system. 31 | 32 | ### status 33 | `@property(nonatomic, readonly) MCDRemoteSystemStatus status;` 34 | 35 | The status of this remote system's availability. 36 | 37 | > [!NOTE] 38 | WNS presence is used for reporting availability for Windows devices and apps which use WNS as notification type. RemoteSystem will be marked as "available" when the device is considered available (Windows) or when one of the underlying apps reports their presence as available (iOS and Android). 39 | 40 | ### manufacturerDisplayName 41 | `@property(nonatomic, readonly, nonnull) NSString* manufacturerDisplayName;` 42 | 43 | The manufacturer name of the given remote system. 44 | 45 | ### modelDisplayName 46 | `@property(nonatomic, readonly, nonnull) NSString* modelDisplayName;` 47 | 48 | The model name of the given remote system. 49 | 50 | ### apps 51 | `@property(nonatomic, readonly, nonnull) NSArray* apps;` 52 | 53 | An array of the applications on this remote system that are available for connectivity. 54 | 55 | ### platform 56 | `@property(nonatomic, readonly) MCDRemoteSystemPlatform platform;` 57 | 58 | The MCDRemoteSystemPlatform managing remote system activity. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemAccountFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAccountFilter 3 | description: "Learn how to filter for accounts to discover remote systems by using constructors like 'filterwithAccount'." 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemAccountFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemAccountFilter : NSObject 11 | ``` 12 | 13 | Filter for the accounts to discover remote systems with. 14 | 15 | ## Properties 16 | 17 | ### account 18 | `@property(nonatomic, readonly, strong, nonnull) MCDConnectedDevicesAccount* account;` 19 | 20 | The Account associated with this MCDRemoteSystemAccountFilter. 21 | 22 | ## Constructors 23 | 24 | ### filterWithAccount 25 | `+ (nullable instancetype)filterWithAccount:(nonnull MCDConnectedDevicesAccount*)account;` 26 | 27 | Initialize the class with the MCDConnectedDevicesAccount account. 28 | 29 | #### Parameters 30 | * `account` 31 | 32 | The MCDConnectedDevicesAccount account being used. 33 | 34 | #### Returns 35 | Returns a MCDRemoteSystemAccountFilter object filtered with the Account. 36 | 37 | ### initWithAccount 38 | `- (nullable instancetype)initWithAccount:(nonnull MCDConnectedDevicesAccount*)account;` 39 | 40 | Initialize the class with the MCDConnectedDevicesAccount account. 41 | 42 | #### Parameters 43 | * `account` 44 | 45 | The MCDConnectedDevicesAccount account being used. 46 | 47 | #### Returns 48 | Returns an MCDRemoteSystemAccountFilter object initialized filtered with the Account. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemAddedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAddedEventArgs 3 | description: Learn about the MCDRemoteSystemAddedEventArgs class. This class is for event arguments for the RemoteSystemWatcher RemoteSystemAdded event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemAddedEventArgs` 8 | 9 | ``` 10 | @interface MCDRemoteSystemAddedEventArgs : NSObject 11 | ``` 12 | Event arguments for the RemoteSystemWatcher RemoteSystemAdded event. 13 | 14 | ## Properties 15 | 16 | ### remoteSystem 17 | `@property(nonatomic, readonly, nonnull) MCDRemoteSystem* remoteSystem;` 18 | 19 | The remote system that was added. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemApp.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemApp 3 | description: Represents an application on a remote system that is available for connectivity. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemApp` 8 | 9 | ``` 10 | @interface MCDRemoteSystemApp : NSObject 11 | ``` 12 | 13 | Represents an application on a remote system that is available for connectivity. 14 | 15 | ## Properties 16 | 17 | ### appId 18 | `@property(nonatomic, readonly, nonnull) NSString* appId;` 19 | 20 | A unique identifier for this application. 21 | 22 | ### displayName 23 | `@property(nonatomic, readonly, nonnull) NSString* displayName;` 24 | 25 | The friendly display name for this application. This is the name used by the device for Bluetooth identification. If this hasn't been set or the device doesn't support Bluetooth, this field will be empty. 26 | 27 | ### availableByProximity 28 | `@property(nonatomic, readonly, getter=isAvailableByProximity) BOOL availableByProximity;` 29 | 30 | Indicates whether this application is currently available for proximal connection. 31 | 32 | ### availableBySpatialProximity 33 | `@property(nonatomic, readonly, getter=isAvailableBySpatialProximity) BOOL availableBySpatialProximity;` 34 | 35 | Indicates whether this application is currently available for spatial sharing connection. 36 | 37 | ### attributes 38 | `@property(nonatomic, readonly, nonnull) NSDictionary* attributes;` 39 | 40 | A dictionary of key/value pairs defining the attributes of this application. 41 | 42 | ### appServices 43 | `@property(nonatomic, readonly, nullable) NSArray* appServices;` 44 | 45 | An array of MCDAppServiceDescription instances describing the app services that this application provides for remote connectivity. 46 | 47 | ### accounts 48 | `@property(nonatomic, readonly, nullable) NSArray* accounts;` 49 | 50 | The Account associated with the MCDRemoteSystemApp that you have permissions to know about. What determines permissions is if the MCDConnectedDevicesAccount exists in the MCDConnectedDevicesAccountManager when the MCDRemoteSystemWatcher is started. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemAuthorizationKind.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAuthorizationKind 3 | description: Contains values that describe the potential authorization kinds (user-account-based authorization scopes) for remote system discovery. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteSystemAuthorizationKind` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDRemoteSystemAuthorizationKind) 11 | ``` 12 | 13 | Contains values that describe the potential authorization kinds (user-account-based authorization scopes) 14 | for remote system discovery. 15 | 16 | ## Fields 17 | 18 | | Name | Value | Description | 19 | |:----------------------------------|:------|:-------------------------------| 20 | | MCDRemoteSystemAuthorizationKindSameUser | 0 | The system can only discover and connect with devices signed onto by the same user account. | 21 | | MCDRemoteSystemAuthorizationKindAnonymous | 1 | The system can discover and connect with other users' devices, provided they are in proximity and allow anonymous discovery. | 22 | 23 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemAuthorizationKindFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemAuthorizationKindFilter 3 | description: Learn about the MCDRemoteSystemAuthorizationKindFilter class. This class is used to filter remote systems based on authorization type. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemAuthorizationKindFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemAuthorizationKindFilter : NSObject 11 | ``` 12 | 13 | A class used to filter remote systems based on authorization type. 14 | 15 | ## Properties 16 | 17 | ### kind 18 | `@property(nonatomic, readonly) MCDRemoteSystemAuthorizationKind kind;` 19 | 20 | The authorization type to filter for. 21 | 22 | ## Constructors 23 | 24 | ### filterWithKind 25 | `+ (nullable instancetype)filterWithKind:(MCDRemoteSystemAuthorizationKind)authorizationKind;` 26 | 27 | A new instance of this class filtered on MCDRemoteSystemAuthorizationKind. 28 | 29 | #### Parameters 30 | * `authorizationKind` 31 | 32 | The authorization type to filter for. 33 | 34 | #### Returns 35 | Returns an MCDRemoteSystemAuthorizationKindFilter object with the provided authorization filter. 36 | 37 | ### initWithKind 38 | `- (nullable instancetype)initWithKind:(MCDRemoteSystemAuthorizationKind)authorizationKind;` 39 | 40 | A new instance of this class with MCDRemoteSystemAuthorizationKind. 41 | 42 | #### Parameters 43 | * `authorizationKind` 44 | 45 | The authorization type to filter for. 46 | 47 | #### Returns 48 | Returns an MCDRemoteSystemAuthorizationKindFilter object initialized with the authorizationKind. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemDiscoveryType.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemDiscoveryType 3 | description: Contains values that describe how remote systems are able to be discovered. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteSystemDiscoveryType` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDRemoteSystemDiscoveryType) 11 | ``` 12 | 13 | Contains values that describe how remote systems are able to be discovered. 14 | 15 | ## Fields 16 | 17 | | Name | Value | Description | 18 | |:----------------------------------|:------|:-------------------------------| 19 | | MCDRemoteSystemDiscoveryTypeAny | 0 | Remote systems are discoverable through any connection. | 20 | | MCDRemoteSystemDiscoveryTypeProximal | 1 | Remote systems are only discoverable through a proximal connection, such as a local 21 | network or Bluetooth connection. | 22 | | MCDRemoteSystemDiscoveryTypeCloud | 2 | Remote systems are only discoverable through cloud connection. | 23 | | MCDRemoteSystemDiscoveryTypeSpatiallyProximal | 3 | Remote systems are discoverable through a proximal connection and are expected to be 24 | spatially near to the client device (in Bluetooth range, for example). | 25 | 26 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemDiscoveryTypeFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemDiscoveryTypeFilter 3 | description: Learn about the MCDRemoteSystemDiscoveryTypeFilter class. This class is used to filter remote systems based upon discovery type. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemDiscoveryTypeFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemDiscoveryTypeFilter : NSObject 11 | ``` 12 | 13 | A class used to filter remote systems based upon discovery type. 14 | 15 | ## Properties 16 | 17 | ### type 18 | `@property(nonatomic, readonly) MCDRemoteSystemDiscoveryType type;` 19 | 20 | The discovery type to filter for. 21 | 22 | > Note: On Android, the Connected Devices Platform can only use Bluetooth on systems running Android 8.0 (Oreo) or later. 23 | 24 | ## Constructors 25 | 26 | ### filterWithType 27 | `+ (nullable instancetype)filterWithType:(MCDRemoteSystemDiscoveryType)discoveryType;` 28 | 29 | #### Parameters 30 | * `discoveryType` The discovery type to filter for. 31 | 32 | #### Returns 33 | A new instance of this class with the given type value. Values can be AND'ed together to apply multiple filters at once. 34 | 35 | ### initWithType 36 | `- (nullable instancetype)initWithType:(MCDRemoteSystemDiscoveryType)discoveryType;` 37 | 38 | #### Parameters 39 | * `discoveryType` The discovery type to filter for. 40 | 41 | #### Returns 42 | A new instance of this class with the given type value. Values can be AND'ed together to apply multiple filters at once. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemEnumerationCompletedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemEnumerationCompletedEventArgs 3 | description: Event arguments for the MCDRemoteSystemWatcher.enumerationCompleted event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemEnumerationCompletedEventArgs` 8 | 9 | ``` 10 | @interface MCDRemoteSystemEnumerationCompletedEventArgs : NSObject 11 | ``` 12 | 13 | Event arguments for the MCDRemoteSystemWatcher.enumerationCompleted event. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemFilter 3 | description: Learn about the MCDRemoteSystemFilter protocol. It's a protocol for objects that act as remote system discovery filters. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # protocol `MCDRemoteSystemFilter` 8 | 9 | ``` 10 | @protocol MCDRemoteSystemFilter 11 | ``` 12 | 13 | Protocol for objects acting as remote system discovery filters. 14 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemKindFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemKindFilter 3 | description: Learn about the MCDRemoteSystemKindFilter class. This class is used to filter remote systems based upon device kind. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemKindFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemKindFilter : NSObject 11 | ``` 12 | 13 | A class used to filter remote systems based upon device kind. 14 | 15 | ## Properties 16 | 17 | ### kinds 18 | `@property(nonatomic, readonly, copy, nonnull) NSArray* kinds;` 19 | 20 | An array of strings indicating the kinds of device to filter for. 21 | 22 | ## Constructors 23 | 24 | ### filterWithKinds 25 | `+ (nullable instancetype)filterWithKinds:(nonnull NSArray*)kinds;` 26 | 27 | A new instance of this class filtered on kinds. 28 | 29 | #### Parameters 30 | * `kinds` 31 | 32 | An array of strings indicating the device kinds to filter for. 33 | 34 | #### Returns 35 | Returns an MCDRemoteSystemKindFilter object filtered with kinds. 36 | 37 | ### initWithKinds 38 | `- (nullable instancetype)initWithKinds:(nonnull NSArray*)kinds;` 39 | 40 | A new instance of this class filtered on kinds. 41 | 42 | #### Parameters 43 | * `kinds` 44 | 45 | An array of strings indicating the device kinds to filter for. 46 | 47 | #### Returns 48 | Returns an MCDRemoteSystemKindFilter object initialized with kinds. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemKinds.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemKinds 3 | description: Learn about the MCDRemoteSystemKinds class. This class contains string fields that represent remote system device types. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemKinds` 8 | 9 | ``` 10 | @interface MCDRemoteSystemKinds : NSObject 11 | ``` 12 | 13 | Contains string fields that represent remote system device types. 14 | 15 | ## Properties 16 | 17 | ### desktop 18 | `@property(class, readonly, readonly, nonnull) NSString* desktop;` 19 | 20 | The canonical name for the desktop device type. 21 | 22 | ### holographic 23 | `@property(class, readonly, readonly, nonnull) NSString* holographic;` 24 | 25 | The canonical name for the holographic device type. 26 | 27 | ### hub 28 | `@property(class, readonly, readonly, nonnull) NSString* hub;` 29 | 30 | The canonical name for the hub device type. 31 | 32 | ### phone 33 | `@property(class, readonly, readonly, nonnull) NSString* phone;` 34 | 35 | The canonical name for the phone device type. 36 | 37 | ### xbox 38 | `@property(class, readonly, readonly, nonnull) NSString* xbox;` 39 | 40 | The canonical name for the xbox device type. 41 | 42 | ### laptop 43 | `@property(class, readonly, readonly, nonnull) NSString* laptop;` 44 | 45 | The canonical name for the laptop device type. 46 | 47 | > **Note:** All Microsoft Surface devices, including the Surface Book, are considered tablet devices. 48 | 49 | ### iot 50 | `@property(class, readonly, readonly, nonnull) NSString* iot;` 51 | 52 | The canonical name for the IoT device type. 53 | 54 | ### tablet 55 | `@property(class, readonly, readonly, nonnull) NSString* tablet;` 56 | 57 | The canonical name for the tablet device type. 58 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemLocalVisibilityKind.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemLocalVisibilityKind 3 | description: Contains values that describe the local application visibility preference when discovering remote systems. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteSystemLocalVisibilityKind` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDRemoteSystemLocalVisibilityKind) 11 | ``` 12 | Contains values that describe the local application visibility preference when discovering remote 13 | systems. 14 | 15 | ## Fields 16 | 17 | | Name | Value | Description | 18 | |:----------------------------------|:------|:-------------------------------| 19 | | MCDRemoteSystemLocalVisibilityKindShowAll | 0 | Show all discoverable applications, including the calling app. 20 | | MCDRemoteSystemLocalVisibilityKindHideLocalApp | 1 | Hide the calling application. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemLocalVisibilityKindFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemLocalVisibilityKindFilter 3 | description: A class used to set the local (calling) application visibility preference when discovering remote systems. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemLocalVisibilityKindFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemLocalVisibilityKindFilter : NSObject 11 | ``` 12 | 13 | A class used to set the local (calling) application visibility preference when discovering remote systems. 14 | 15 | ## Properties 16 | 17 | ### kind 18 | `@property(nonatomic, readonly) MCDRemoteSystemLocalVisibilityKind kind;` 19 | 20 | The visibility setting to filter with. 21 | 22 | ## Constructors 23 | 24 | ### filterWithKind 25 | `+ (nullable instancetype)filterWithKind:(MCDRemoteSystemLocalVisibilityKind)localVisibilityKind;` 26 | 27 | Creates and initializes an instance of this class. 28 | 29 | #### Parameters 30 | * `localVisibilityKind` 31 | 32 | An MCDRemoteSystemLocalVisibilityKind value indicating the local app visibility setting to filter with. 33 | 34 | #### Returns 35 | Returns an MCDRemoteSystemLocalVisibilityKind object filtered by kind. 36 | 37 | ### initWithKind 38 | `- (nullable instancetype)initWithKind:(MCDRemoteSystemLocalVisibilityKind)localVisibilityKind;` 39 | 40 | Creates and initializes an instance of this class. 41 | 42 | #### Parameters 43 | * `localVisibilityKind` 44 | 45 | An MCDRemoteSystemLocalVisibilityKind value indicating the local app visibility setting to filter with. 46 | 47 | #### Returns 48 | Returns an MCDRemoteSystemLocalVisibilityKind object initialized with kind. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemPlatform.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemPlatform 3 | description: Contains values that describe the OS platform that a remote system is running on. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteSystemPlatform` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDRemoteSystemPlatform) 11 | ``` 12 | Contains values that describe the OS platform that a remote system is running on. 13 | 14 | ## Fields 15 | 16 | | Name | Value | Description | 17 | |:----------------------------------|:------|:-------------------------------| 18 | | MCDRemoteSystemPlatformUnknown | 0 | The platform is unknown. 19 | | MCDRemoteSystemPlatformWindows | 1 | Windows OS. | 20 | | MCDRemoteSystemPlatformAndroid | 2 | Android OS. | 21 | | MCDRemoteSystemPlatformIOS | 3 | iOS. | 22 | | MCDRemoteSystemPlatformLinux | 4 | Linux OS. | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemPlatformFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemPlatformFilter 3 | description: A class used to filter remote systems based on the OS platform they are running. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemPlatformFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemPlatformFilter : NSObject 11 | ``` 12 | 13 | A class used to filter remote systems based on the OS platform they are running. 14 | 15 | ## Properties 16 | 17 | ### platform 18 | `@property(nonatomic, readonly) MCDRemoteSystemPlatform platform;` 19 | 20 | A MCDRemoteSystemPlatform value indicating the platform to filter for. 21 | 22 | ## Constructors 23 | 24 | ### filterWithPlatform 25 | `+ (nullable instancetype)filterWithPlatform:(MCDRemoteSystemPlatform)platform;` 26 | 27 | #### Parameters 28 | * `platform` 29 | 30 | A MCDRemoteSystemPlatform value indicating the platform to filter for. 31 | 32 | #### Returns 33 | Returns an MCDRemoteSystemPlatformFilter object filtered by platform. 34 | 35 | ### initWithPlatform 36 | `- (nullable instancetype)initWithPlatform:(MCDRemoteSystemPlatform)platform;` 37 | 38 | #### Parameters 39 | * `platform` 40 | 41 | A MCDRemoteSystemPlatform value indicating the platform to filter for. 42 | 43 | #### Returns 44 | Returns an MCDRemoteSystemPlatformFilter object initialized with a filter by platform. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemRemovedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemRemovedEventArgs 3 | description: Event arguments for the RemoteSystemWatcher RemoteSystemRemoved event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemRemovedEventArgs` 8 | 9 | ``` 10 | @interface MCDRemoteSystemRemovedEventArgs : NSObject 11 | ``` 12 | 13 | Event arguments for the MCDRemoteSystemWatcher.remoteSystemRemoved event. 14 | 15 | ## Properties 16 | 17 | ### remoteSystem 18 | `@property(nonatomic, readonly, nonnull) MCDRemoteSystem* remoteSystem;` 19 | 20 | The MCDRemoteSystem remote system that was removed. This remote system should 21 | not be used after this event. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemStatus 3 | description: Learn about the MCDRemoteSystemStatus enum. This enum contains values that describe the availability of a remote system. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDRemoteSystemStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDRemoteSystemStatus) 11 | ``` 12 | Contains values that describe the availability of a remote system. On iOS apps, a value of **MCDRemoteSystemStatusUnknown** will always be encountered; other values are only available on Windows systems. 13 | 14 | ## Fields 15 | 16 | | Name | Value | Description | 17 | |:----------------------------------|:------|:-------------------------------| 18 | | MCDRemoteSystemStatusUnavailable | 0 | The remote system is reported as unavailable. | 19 | | MCDRemoteSystemStatusDiscoveringAvailablilty | 1 | The status of the remote system is being determined (occurs during the discovery process). | 20 | | MCDRemoteSystemStatusAvailable | 2 | The remote system is reported as available. | 21 | | MCDRemoteSystemStatusUnknown | 3 | The status is unknown. | 22 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemStatusTypeFilter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemStatusTypeFilter 3 | description: A class used to filter remote systems based on availability status type. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemStatusTypeFilter` 8 | 9 | ``` 10 | @interface MCDRemoteSystemStatusTypeFilter : NSObject 11 | ``` 12 | 13 | A class used to filter remote systems based on availability status type. 14 | 15 | ## Properties 16 | 17 | ### type 18 | `@property(nonatomic, readonly) MCDRemoteSystemStatusType type;` 19 | The remote system status type of this filter instance. 20 | 21 | ## Constructors 22 | 23 | ### filterWithType 24 | `+ (nullable instancetype)filterWithType:(MCDRemoteSystemStatusType)statusType;` 25 | 26 | #### Parameters 27 | * `statusType` A value indicating the availability status type to filter for. 28 | 29 | #### Returns 30 | Returns an MCDRemoteSystemStatusTypeFilter object filtered by type. 31 | 32 | ### initWithType 33 | `- (nullable instancetype)initWithType:(MCDRemoteSystemStatusType)statusType;` 34 | 35 | #### Parameters 36 | * `statusType` 37 | 38 | A value indicating the availability status type to filter for. 39 | 40 | #### Returns 41 | Returns an MCDRemoteSystemStatusTypeFilter object initialized with the type. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemUpdatedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemUpdatedEventArgs 3 | description: Event arguments for the MCDRemoteSystemWatcher remoteSystemUpdated event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemUpdatedEventArgs` 8 | 9 | ``` 10 | @interface MCDRemoteSystemUpdatedEventArgs : NSObject 11 | ``` 12 | 13 | Event arguments for the MCDRemoteSystemWatcher remoteSystemUpdated event. 14 | 15 | ## Properties 16 | 17 | ### remoteSystem 18 | `@property(nonatomic, readonly, nonnull) MCDRemoteSystem* remoteSystem;` 19 | 20 | The MCDRemoteSystem remote system that was updated. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemWatcher.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemWatcher 3 | description: Learn about the MCDRemoteSystemWatcher class and its properties. This class is used to discover remote systems. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemWatcher` 8 | 9 | ``` 10 | @interface MCDRemoteSystemWatcher : NSObject 11 | ``` 12 | 13 | A class used to discover remote systems. 14 | 15 | ## Properties 16 | 17 | ### remoteSystemAdded 18 | ``` 19 | @property(nonatomic, readonly, nonnull) MCDEvent* remoteSystemAdded; 20 | ``` 21 | 22 | Event for when a new remote system is discovered. 23 | 24 | ### remoteSystemUpdated 25 | ``` 26 | @property(nonatomic, readonly, nonnull) MCDEvent* remoteSystemUpdated; 27 | ``` 28 | 29 | Event for when a remote system that was previously discovered in this discovery session changes from proximally 30 | connected to cloud connected, or the reverse. 31 | 32 | ### remoteSystemRemoved 33 | ``` 34 | @property(nonatomic, readonly, nonnull) MCDEvent* remoteSystemRemoved; 35 | ``` 36 | 37 | Event for when a remote system is removed. 38 | 39 | ### enumerationCompleted 40 | ``` 41 | @property(nonatomic, readonly, nonnull) MCDEvent* enumerationCompleted; 42 | ``` 43 | 44 | Event for when the initial discovery of currently-discoverable devices has finished. The discovery process will continue to run and will raise additional events if the set of existing remote systems changes. 45 | 46 | ### errorOccurred 47 | ``` 48 | @property(nonatomic, readonly, nonnull) MCDEvent* errorOccurred; 49 | ``` 50 | 51 | Event for when an error occurs during discovery. The discovery process will continue if possible. For example, if the error 52 | occurs with a value of **MCDRemoteSystemWatcherError.MCDRemoteSystemWatcherErrorInternetNotAvailable**, proximal discovery 53 | may continue because the error applies only to cloud discovery (see **MCDRemoteSystemDiscoveryType**). 54 | 55 | ## Constructors 56 | 57 | ### watcher 58 | ``` 59 | + (nullable instancetype)watcher; 60 | ``` 61 | 62 | Creates and initializes a new instance of this class. 63 | 64 | #### Returns 65 | Returns a new instance of this class. 66 | 67 | ### watcherWithFilters 68 | ``` 69 | + (nullable instancetype)watcherWithFilters:(nonnull NSArray*>*)filters; 70 | ``` 71 | 72 | Creates and initializes a new instance of this class with filters. 73 | 74 | #### Parameters 75 | * `filters` 76 | 77 | An array of filters to use in the device discovery process. 78 | 79 | #### Returns 80 | Returns an MCDRemoteSystemWatcher object with filters. 81 | 82 | ### initWithFilters 83 | ``` 84 | - (nullable instancetype)initWithFilters:(nonnull NSArray*>*)filters; 85 | ``` 86 | 87 | Creates and initializes a new instance of this class with filters. 88 | 89 | #### Parameters 90 | * `filters` 91 | 92 | An array of filters to use in the device discovery process. 93 | 94 | #### Returns 95 | Returns an MCDRemoteSystemWatcher object initialized with filters. 96 | 97 | ## Methods 98 | 99 | ### start 100 | `- (void)start;` 101 | 102 | Begins discovering remote systems. 103 | 104 | ### stop 105 | `- (void)stop;` 106 | 107 | Stops the active discovery. 108 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemWatcherError.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemWatcherError 3 | description: Contains values that the describe an error encountered by a remote system watcher object during 4 | the discovery process. 5 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 6 | --- 7 | 8 | # enum `MCDRemoteSystemWatcherError` 9 | 10 | ``` 11 | typedef NS_ENUM(NSInteger, MCDRemoteSystemWatcherError) 12 | ``` 13 | Contains values that the describe an error encountered by a remote system watcher object during 14 | the discovery process. 15 | 16 | ## Fields 17 | 18 | | Name | Value | Description | 19 | |:----------------------------------|:------|:-------------------------------| 20 | | MCDRemoteSystemWatcherErrorUnknown | 0 | The watcher encountered an unknown error. | 21 | | MCDRemoteSystemWatcherErrorInternetNotAvailable | 1 | The error occurred because the Internet connection was lost. | 22 | | MCDRemoteSystemWatcherErrorAuthenticationError | 2 | The error occurred because a ConnectedDevicesAccount being used to run the discovery could not be authenticated. | 23 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemWatcherErrorOccurredEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDRemoteSystemWatcherErrorOccurredEventArgs 3 | description: Event arguments for the RemoteSystemWatcher RemoteSystemErrorOccurred event. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDRemoteSystemWatcherErrorOccurredEventArgs` 8 | 9 | ``` 10 | @interface MCDRemoteSystemWatcherErrorOccurredEventArgs : NSObject 11 | ``` 12 | 13 | Event arguments for the RemoteSystemWatcher RemoteSystemErrorOccurred event. 14 | 15 | ## Properties 16 | 17 | ### error 18 | `@property(nonatomic, readonly) MCDRemoteSystemWatcherError error;` 19 | 20 | A **MCDRemoteSystemWatcherError** instance. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/remotesystems/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: RemoteSystems namespace 3 | description: Use the APIs in the RemoteSystems namespace to allow a client app to discover information about remote devices and applications. 4 | --- 5 | 6 | # RemoteSystems namespace 7 | ``` 8 | ConnectedDevicesRemoteSystems.h 9 | ``` 10 | 11 | The RemoteSystems namespace contains APIs that that allow a client app to discover information about remote devices and applications. 12 | 13 | #### [MCDAppServiceInfo](MCDAppServiceInfo.md) 14 | #### [MCDRemoteSystem](MCDRemoteSystem.md) 15 | #### [MCDRemoteSystemAccountFilter](MCDRemoteSystemAccountFilter.md) 16 | #### [MCDRemoteSystemAddedEventArgs](MCDRemoteSystemAddedEventArgs.md) 17 | #### [MCDRemoteSystemApp](MCDRemoteSystemApp.md) 18 | #### [MCDRemoteSystemAuthorizationKind](MCDRemoteSystemAuthorizationKind.md) 19 | #### [MCDRemoteSystemAuthorizationKindFilter](MCDRemoteSystemAuthorizationKindFilter.md) 20 | #### [MCDRemoteSystemDiscoveryType](MCDRemoteSystemDiscoveryType.md) 21 | #### [MCDRemoteSystemDiscoveryTypeFilter](MCDRemoteSystemDiscoveryTypeFilter.md) 22 | #### [MCDRemoteSystemEnumerationCompletedEventArgs](MCDRemoteSystemEnumerationCompletedEventArgs.md) 23 | #### [MCDRemoteSystemFilter](MCDRemoteSystemFilter.md) 24 | #### [MCDRemoteSystemKindFilter](MCDRemoteSystemKindFilter.md) 25 | #### [MCDRemoteSystemKinds](MCDRemoteSystemKinds.md) 26 | #### [MCDRemoteSystemLocalVisibilityKind](MCDRemoteSystemLocalVisibilityKind.md) 27 | #### [MCDRemoteSystemLocalVisibilityKindFilter](MCDRemoteSystemLocalVisibilityKindFilter.md) 28 | #### [MCDRemoteSystemPlatform](MCDRemoteSystemPlatform.md) 29 | #### [MCDRemoteSystemPlatformFilter](MCDRemoteSystemPlatformFilter.md) 30 | #### [MCDRemoteSystemRemovedEventArgs](MCDRemoteSystemRemovedEventArgs.md) 31 | #### [MCDRemoteSystemStatus](MCDRemoteSystemStatus.md) 32 | #### [MCDRemoteSystemStatusTypeFilter](MCDRemoteSystemStatusTypeFilter.md) 33 | #### [MCDRemoteSystemUpdatedEventArgs](MCDRemoteSystemUpdatedEventArgs.md) 34 | #### [MCDRemoteSystemWatcher](MCDRemoteSystemWatcher.md) 35 | #### [MCDRemoteSystemWatcherError](MCDRemoteSystemWatcherError.md) 36 | #### [MCDRemoteSystemWatcherErrorOccurredEventArgs](MCDRemoteSystemWatcherErrorOccurredEventArgs.md) -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata.useractivities/MCDUserActivityAttribution.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserActivityAttribution 3 | description: Learn about the MCDUserActivityAttribution class. This class manages the graphical elements of a user activity. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserActivityAttribution` 8 | 9 | ``` 10 | @interface MCDUserActivityAttribution : NSObject 11 | ``` 12 | 13 | This class manages the graphical elements of a user activity. 14 | 15 | ## Properties 16 | 17 | ### iconUri 18 | `+ (nullable instancetype)attributionWithIconUri:(nonnull NSString*)iconUri;` 19 | 20 | The URI for the icon image. 21 | 22 | ### alternateText 23 | `@property(nonatomic, copy, nonnull) NSString* alternateText;` 24 | 25 | The text that describes the icon image (for use with screen readers). 26 | 27 | ### addImageQuery 28 | `@property(nonatomic, assign) BOOL addImageQuery;` 29 | 30 | Determines whether to allow Windows to append a query string to the image URI supplied from **IconUri** when retrieving the image. The query string includes information that can help select the ideal image based on the DPI of the user's display, the high contrast setting, and the user's language. This query string specifies scale, contrast setting, and language; for instance, an **IconUri** value of "www.website.com/images/hello.png" becomes "www.website.com/images/hello.png?ms-scale=100&ms-contrast=standard&ms-lang=en-us". 31 | 32 | ## Constructors 33 | 34 | ### userActivityAttributionWithIconUri 35 | `+ (nullable instancetype)userActivityAttributionWithIconUri:(nonnull NSString*)iconUri;` 36 | 37 | Creates an instance of this class with an Icon URI. 38 | 39 | #### Parameters 40 | * `iconUri` 41 | 42 | A string value of an Icon URI to belong to the created instance. 43 | 44 | #### Returns 45 | Returns an MCDUserActivityAttribution object initialized with an icon uri. 46 | 47 | ### attributionWithIconUri 48 | `+ (nullable instancetype)attributionWithIconUri:(nonnull NSString*)iconUri;` 49 | 50 | Creates an instance of this class with attribution to a icon uri. 51 | 52 | #### Parameters 53 | * `iconUri` 54 | 55 | A string value of an Icon URI to belong to the created instance. 56 | 57 | #### Returns 58 | Returns an MCDUserActivityAttribution object attributing with an icon uri. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata.useractivities/MCDUserActivitySession.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserActivitySession 3 | description: This class tracks a user activity ([MCDUserActivity](MCDUserActivity.md) instance) while the user is engaged in that activity. 4 | 5 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 6 | --- 7 | 8 | # class `MCDUserActivitySession` 9 | 10 | ``` 11 | @interface MCDUserActivitySession : NSObject 12 | ``` 13 | 14 | This class tracks engagement for a specified user activity ([MCDUserActivity](MCDUserActivity.md) instance). 15 | 16 | A [MCDUserActivity](MCDUserActivity.md) is associated with an MCDUserActivitySession which tracks how long the user is engaged in that activity. For example, an activity such as watching a movie can occur on-and-off over the course of multiple days. When the user first starts the new activity of watching a movie, a MCDUserActivitySession must be created. It should be disposed when the user switches to a different activity. When the user resumes, the app should create another **MCDUserActivitySession** from the original [MCDUserActivity](MCDUserActivity.md) to track the activity as long as the user is watching the movie. 17 | 18 | 19 | ## Properties 20 | 21 | ### activityId 22 | `@property(nonatomic, readonly, nonnull) NSString* activityId;` 23 | 24 | A unique ID for the MCDUserActivity associated with this MCDUserActivitySession. 25 | 26 | ## Methods 27 | 28 | ### stop 29 | `- (void)stop;` 30 | 31 | Stops this activity session. This should be called when the user is no longer engaged in the activity associated with this session. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata.useractivities/MCDUserActivitySessionHistoryItem.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserActivitySessionHistoryItem 3 | description: This class provides the start and end time that a user was engaged in a particular activity. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserActivitySessionHistoryItem` 8 | 9 | ``` 10 | @interface MCDUserActivitySessionHistoryItem : NSObject 11 | ``` 12 | 13 | This class provides the start and end time that a user was engaged in a particular activity. 14 | 15 | 16 | ## Properties 17 | 18 | ### userActivity 19 | `@property(nonatomic, readonly, nonnull) MCDUserActivity* userActivity;` 20 | 21 | The user activity whose history this class instance represents. 22 | 23 | ### startTime 24 | `@property(nonatomic, readonly, nonnull) NSDate* startTime;` 25 | 26 | The time when the user started engaging in the associated activity. 27 | 28 | ### endTime 29 | `@property(nonatomic, readonly, nullable) NSDate* endTime;` 30 | 31 | The time when the user stopped engaging in the associated activity. 32 | 33 | ### remoteSystemId 34 | `@property(nonatomic, readonly, nullable) NSString* remoteSystemId;` 35 | 36 | The string indicating the remote system id of the device the user engaged this activity on. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata.useractivities/MCDUserActivityVisualElements.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserActivityVisualElements 3 | description: This class contains the visual information, such as the description and icon, that can be shown in the "details" tile for a MCDUserActivity. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserActivityVisualElements` 8 | 9 | ``` 10 | @interface MCDUserActivityVisualElements : NSObject 11 | ``` 12 | 13 | This class contains the visual information, such as the description and icon, that can be shown in the "details" tile for a MCDUserActivity. 14 | 15 | ## Properties 16 | 17 | ### displayText 18 | `@property(nonatomic, copy, nonnull) NSString* displayText;` 19 | 20 | The display text for the "details" tile of the activity. 21 | 22 | ### descriptionText 23 | `@property(nonatomic, copy, nullable) NSString* descriptionText;` 24 | 25 | The description text for the "details" tile of the activity. 26 | 27 | ### backgroundColor 28 | `@property(nonatomic, copy, nullable) SKColor* backgroundColor;` 29 | 30 | The background color for the tile of the activity. 31 | 32 | ### attribution 33 | `@property(nonatomic, retain, nullable) MCDUserActivityAttribution* attribution;` 34 | 35 | The graphical information about the activity. 36 | 37 | ### adaptiveCardJson 38 | `@property(nonatomic, copy, nullable) NSString* adaptiveCardJson;` 39 | 40 | The content text for the "details" tile of the activity. 41 | 42 | ### attributionDisplayText 43 | `@property(nonatomic, copy, nullable) NSString* attributionDisplayText;` 44 | 45 | The text that is shown in the top banner of the activity card. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata.useractivities/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserActivities namespace 3 | description: Use the APIs in the UserActivities namespace to allow your application to create and publish Windows-style User Activities. 4 | --- 5 | 6 | # UserActivities namespace 7 | 8 | ``` 9 | ConnectedDevicesUserDataUserActivities.h 10 | ``` 11 | 12 | The UserActivities namespace contains APIs that allow applications to create and publish Windows-style User Activities. For more information on the User Activities feature, see the [UWP UserActivities namespace](/uwp/api/windows.applicationmodel.useractivities). 13 | 14 | #### [MCDUserActivity](MCDUserActivity.md) 15 | #### [MCDUserActivityAttribution](MCDUserActivityAttribution.md) 16 | #### [MCDUserActivityChannel](MCDUserActivityChannel.md) 17 | #### [MCDUserActivitySession](MCDUserActivitySession.md) 18 | #### [MCDUserActivitySessionHistoryItem](MCDUserActivitySessionHistoryItem.md) 19 | #### [MCDUserActivityVisualElements](MCDUserActivityVisualElements.md) -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/MCDUserDataFeedNotificationTypes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserDataFeedNotificationTypes 3 | description: Learn about the MCDUserDataFeedNotificationTypes class. This class is responsible for providing the notification types. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserDataFeedNotificationTypes` 8 | 9 | ``` 10 | @interface MCDUserDataFeedNotificationTypes : NSObject 11 | ``` 12 | 13 | This class provides the valid notification types for MCDUserDataFeedSyncScope.notificationType. 14 | 15 | 16 | ## Properties 17 | 18 | ### notificationWithPayload 19 | `@property(class, nonatomic, readonly, nonnull) NSString* notificationWithPayload;` 20 | 21 | Represents the incoming push notifications. There are no rescrictions to push notifications other than domain/server restrictions. 22 | 23 | ### notificationOnly 24 | `@property(class, nonatomic, readonly, nonnull) NSString* notificationOnly;` 25 | 26 | Demote all push notifications to a notification only telling the system to sync to receive the data, even if the data could be contained in the push notification. 27 | 28 | 29 | ### noNotification 30 | `@property(class, nonatomic, readonly, nonnull) NSString* noNotification;` 31 | 32 | Prevent any notifications for new user data, only receive new data when UserDataFeed.startSync is called, or when interacting with the server in other ways 33 | -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/MCDUserDataFeedPlatforms.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserDataFeedPlatforms 3 | description: Learn about the MCDUserDataFeedPlatforms class. This class provides the valid platform for the MCDUserDataFeedSyncScope. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserDataFeedPlatforms` 8 | 9 | ``` 10 | @interface MCDUserDataFeedPlatforms : NSObject 11 | 12 | This class is responsible for providing the valid platform for the MCDUserDataFeedSyncScope. 13 | ``` 14 | 15 | ## Properties 16 | 17 | ### all 18 | `@property(class, nonatomic, readonly, nonnull) NSString* all;` 19 | 20 | All platform objects 21 | 22 | ### android 23 | `@property(class, nonatomic, readonly, nonnull) NSString* android;` 24 | 25 | Android platform object 26 | 27 | ### iOS 28 | `@property(class, nonatomic, readonly, nonnull) NSString* iOS;` 29 | 30 | iOS platform object 31 | 32 | ### windowsUWP 33 | `@property(class, nonatomic, readonly, nonnull) NSString* windowsUWP;` 34 | 35 | UWP platform object 36 | 37 | ### windows32 38 | `@property(class, nonatomic, readonly, nonnull) NSString* windows32;` 39 | 40 | Windows32 platfrom object 41 | 42 | ### linux 43 | `@property(class, nonatomic, readonly, nonnull) NSString* linux;` 44 | 45 | Linux platfrom object -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/MCDUserDataFeedSyncScope.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserDataFeedSyncScope 3 | description: This class represents the user data that is synchronized with the Connected Devices Platform backend when the app uses certain user-specific Connected Devices functionality. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserDataFeedSyncScope` 8 | 9 | ``` 10 | @interface MCDUserDataFeedSyncScope : NSObject 11 | ``` 12 | This interface represents the user data that is synchronized with the Connected Devices Platform 13 | backend when the app uses certain user-specific Connected Devices functionality, such as user 14 | activities. An instance is retrieved statically from the class that manages such functionality 15 | (e.g. **MCDUserActivityChannel**), and it is used in the construction of **MCDUserDataFeed**. 16 | 17 | ## Properties 18 | 19 | ### platform 20 | `@property (nonatomic, readwrite, nullable, copy) NSString* platform;` 21 | 22 | The **ConnectedDevicesPlatform** instance that has been initialized for this app's Connected Devices functionality. 23 | 24 | ### syncScopeFlags 25 | `@property (nonatomic, readwrite, nullable, copy) NSArray* syncScopeFlags;` 26 | 27 | Set any optional flags for filtering incoming activities. 28 | 29 | ### notificationType 30 | `@property (nonatomic, readwrite, nullable, copy) NSString* notificationType;` 31 | 32 | Set type of change notification type to receive for user data feed sync scope 33 | 34 | ``` -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/MCDUserDataFeedSyncScopeFlags.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserDataFeedSyncScopeFlags 3 | description: Learn about the MCDUserDataFeedSyncScopeFlags class. This class provides optional valid flags for MCDUserDataFeedSyncScope.syncScopeFlags. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserDataFeedSyncScopeFlags` 8 | 9 | ``` 10 | @interface MCDUserDataFeedSyncScopeFlags : NSObject 11 | ``` 12 | 13 | This class provides optional valid flags for MCDUserDataFeedSyncScope.syncScopeFlags. 14 | 15 | ## Properties 16 | 17 | ### excludeAutoGenerated 18 | 19 | `@property(class, nonatomic, readonly, nonnull) NSString* excludeAutoGenerated;` 20 | 21 | Exclude activities which are automatically generated by SAM on Windows. 22 | 23 | ### includeWebActionable 24 | `@property(class, nonatomic, readonly, nonnull) NSString* includeWebActionable;` 25 | 26 | Always include activities that can be activated via web app. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/MCDUserDataFeedSyncStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserDataSyncStatus 3 | description: Contains values that describe the state of a **[MCDUserDataFeed](MCDUserDataFeed.md)**'s synchronization with the Connected Devices Platform backend. 4 | keywords: microsoft, windows, user activities, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # enum `MCDUserDataSyncStatus` 8 | 9 | ``` 10 | typedef NS_ENUM(NSInteger, MCDUserDataSyncStatus) 11 | ``` 12 | 13 | Contains values that describe the state of a **[MCDUserDataFeed](MCDUserDataFeed.md)**'s synchronization with the Connected Devices Platform backend. 14 | 15 | |Name | Value | Description | 16 | |:-- |:-- |:-- | 17 | | MCDUserDataFeedSyncStatusQueued |0| The data is not yet synchronized. | 18 | | MCDUserDataFeedSyncStatusSynchronized |1| The data has been synchronized.| -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/MCDUserDataFeedSyncStatusChangedEventArgs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MCDUserDataFeedSyncStatusChangedEventArgs 3 | description: EventArgs class for when the sync status changes for the **MCDUserDataFeed** instance. 4 | keywords: microsoft, windows, iOS, iPhone, objectiveC, connected devices, Project Rome 5 | --- 6 | 7 | # class `MCDUserDataFeedSyncStatusChangedEventArgs` 8 | 9 | ``` 10 | @interface MCDUserDataFeedSyncStatusChangedEventArgs : NSObject 11 | ``` 12 | 13 | EventArgs class for when the sync status changes for the **MCDUserDataFeed** instance. -------------------------------------------------------------------------------- /project-rome-docs/objectivec-api/userdata/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UserData namespace 3 | description: Use the APIs in the UserData namespace to synchronize your application's user data with the Connected Devices Platform backend. 4 | --- 5 | 6 | # UserData namespace 7 | 8 | ``` 9 | ConnectedDevicesUserData.h 10 | ``` 11 | 12 | The UserData namespace contains APIs that allow applications to synchronize user data with the Connected Devices Platform backend when necessary, such as for use with the User Activities feature and others (coming soon). 13 | 14 | #### [MCDUserDataFeed](MCDUserDataFeed.md) 15 | #### [MCDUserDataFeedSyncScope](MCDUserDataFeedSyncScope.md) 16 | #### [MCDUserDataFeedSyncStatusChangedEventArgs](MCDUserDataFeedSyncStatusChangedEventArgs.md) 17 | #### [MCDUserDataFeedNotificationTypes](MCDUserDataFeedNotificationTypes.md) 18 | #### [MCDUserDataFeedPlatforms](MCDUserDataFeedPlatforms.md) 19 | #### [MCDUserDataFeedSyncScopeFlags](MCDUserDataFeedSyncScopeFlags.md) 20 | #### [MCDUserDataFeedSyncStatus](MCDUserDataFeedSyncStatus.md) 21 | -------------------------------------------------------------------------------- /project-rome-docs/project-rome/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "homepages": [], 3 | "source_base_path": "D:/a/1/s/target_repo/project-rome-docs", 4 | "xrefmap": "xrefmap.yml", 5 | "files": [], 6 | "incremental_info": [ 7 | { 8 | "status": { 9 | "can_incremental": false, 10 | "details": "Cannot support incremental post processing, the reason is: it's disabled.", 11 | "incrementalPhase": "postProcessing" 12 | }, 13 | "processors": {} 14 | } 15 | ], 16 | "version_info": {}, 17 | "groups": [ 18 | { 19 | "xrefmap": "xrefmap.yml" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /project-rome-docs/project-rome/xrefmap.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:XRefMap 2 | sorted: true 3 | references: [] 4 | -------------------------------------------------------------------------------- /project-rome-docs/remote-sessions/how-to-guide-for-windows.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Implementing Remote Sessions for Windows 3 | description: Learn how to implement Remote Sessions for Windows apps. 4 | --- 5 | 6 | # Implementing Remote Sessions for Windows 7 | 8 | The Windows related how-to and API pages for Project Rome are included in the UWP section of Microsoft Learn. Check out the following articles to learn how to implement Remote Sessions for Windows apps: 9 | 10 | [How to guide for Windows](/windows/uwp/launch-resume/remote-sessions) 11 | 12 | [API reference for Windows](/uwp/api/windows.system.remotesystems.remotesystemsession) -------------------------------------------------------------------------------- /project-rome-docs/remote-sessions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Connect to Another Device via Remote Session 3 | description: Learn how to use a session to connect your local app to a remote device. Remote sessions can be used for explicit app-to-app messaging. 4 | ms.topic: overview 5 | ms.custom: seodec2018 6 | --- 7 | 8 | # Remote Sessions 9 | 10 | The remote sessions feature allows an app to connect to other devices through a session. 11 | 12 | Remote sessions can be used for explicit app-to-app messaging or for brokered exchange of system-managed data. 13 | 14 | Sessions can be created by any device on a supported platform, and other devices, including devices signed in by other users, can request to join. 15 | -------------------------------------------------------------------------------- /project-rome-docs/user-activities/api-reference-for-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android User Activities API reference 3 | description: Use the Android User Activities APIs to allow your app to create and publish Windows-style User Activities. 4 | --- 5 | 6 | # Android User Activities API reference 7 | 8 | The following namespaces contain APIs that allow an app to create and publish Windows-style User Activities. 9 | 10 | ## Namespaces 11 | 12 | #### [ConnectedDevices](/java/api/com.microsoft.connecteddevices) 13 | #### [UserActivities](/java/api/com.microsoft.connecteddevices.userdata.useractivities) 14 | #### [UserData](/java/api/com.microsoft.connecteddevices.userdata) -------------------------------------------------------------------------------- /project-rome-docs/user-activities/api-reference-for-ios.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: iOS User Activities API reference 3 | description: Use the iOS User Activities APIs to allow your app to create and publish Windows-style User Activities. 4 | --- 5 | 6 | # iOS User Activities API reference 7 | 8 | The following APIs allow an app to create and publish Windows-style User Activities. 9 | 10 | ## API groups 11 | 12 | ### [ConnectedDevices](../objectivec-api/connecteddevices/index.md) 13 | ### [UserActivities](../objectivec-api/userdata.useractivities/index.md) 14 | ### [UserData](../objectivec-api/userdata/index.md) -------------------------------------------------------------------------------- /project-rome-docs/user-activities/how-to-guide-for-microsoft-graph.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using Microsoft Graph's User Activities REST APIs 3 | description: Use Microsoft Graph's User Activities REST APIs to create, publish, update, and read Windows-style User Activities. 4 | --- 5 | 6 | # Using Microsoft Graph's User Activities REST APIs 7 | 8 | The User Activities feature can be implemented through REST API calls with Microsoft Graph. You can find more information and API reference documentation in the [Project Rome section of the Microsoft Graph docs](/graph/api/resources/project-rome-overview#activities). 9 | 10 | This allows you to create, publish, update, and read Windows-style User Activities from any device capable of making HTTP requests. Microsoft Graph makes these scenarios simpler to implement than on the native platform SDKs, but it does not support all of the Project Rome features or provide a native object model. -------------------------------------------------------------------------------- /project-rome-docs/user-activities/how-to-guide-for-windows.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Implementing User Activities for Windows 3 | description: Learn how to implement User Activities for Windows apps. 4 | --- 5 | 6 | # Implementing User Activities for Windows 7 | 8 | The Windows related how-to and API pages for Project Rome are included in the UWP section of Microsoft Learn. Check out the following articles to learn how to implement User Activities for Windows apps: 9 | 10 | [How to guide for Windows](/windows/uwp/launch-resume/useractivities) 11 | 12 | [API reference for Windows](/uwp/api/windows.applicationmodel.useractivities) -------------------------------------------------------------------------------- /project-rome-docs/user-activities/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Create and Publish User Activities 3 | description: Learn how to create and publish Windows-style user activities. User Activities are cloud-based constructs that track the state of a user's tasks in an app. 4 | ms.topic: overview 5 | ms.custom: seodec2018 6 | --- 7 | 8 | # User Activities 9 | 10 | > [!NOTE] 11 | > Starting in July 2021, users who have activity history synced across their Windows devices 12 | > through their Microsoft Account (MSA) will no longer have the option to upload new activity 13 | > in Timeline. They'll still be able to use Timeline and see their activity history (information 14 | > about recent apps, websites and files) on their local PC. AAD-connected accounts won't be 15 | > impacted. 16 | 17 | The User Activities feature allows apps to create and publish Windows-style User Activities. 18 | 19 | User Activities are cloud based constructs that track the state of a user's tasks in an app. Activities can be viewed and resumed at a later time, even across different devices and platforms. For more information on User Activities, see [Continue user activity, even across devices (UWP)](/windows/uwp/launch-resume/useractivities). 20 | 21 | To get started with User Activities on your device, select your preferred development platform on the left navigation pane. 22 | --------------------------------------------------------------------------------