Обзор проекта Rome
Проект Rome представляет собой платформу для создания событий, которые выходят за рамки одного устройства и приводят к росту взаимодействие между пользователями — дают возможность разработчикам создавать ориентированные на человека сценарии, которые перемещаются вместе с пользователями и размывают границы между их устройствами, независимо от форм-фактора этих девайсов и используемой на них операционной системы.
Сначала мы запустили проект Rome на Remote Launch и Remote App Services в Windows 10 Anniversary Update.
Проект Rome для Android SDK
Сегодня мы рады объявить о выпуске Android-версии проекта Project Rome SDK. Этот Android SDK работает как с Java, так и с Xamarin.
Вы можете скачать Project Rome SDK для Android здесь.
Возможности, которые открываются при использовании проекта Rome
Давайте рассмотрим пример приложения, которому может понадобиться соответствующая функциональность. В недавнем посте мы говорили о Поле (Paul) и его музыкальном приложении Contoso. В данном случае у Пола было приложение UWP, которое, по сути, являлось музыкальным плейером, и ему требовалось убедиться в том, что его пользователи могут обмениваться данными в приложении в то же время переходя с одного устройства на другое.
Если продолжать размышления, тогда мы можем себе представить, что у Пола это музыкальное приложение Contoso есть также и для Android. Пол замечает, что многие используют его приложение как на Windows, так и на Android. Это одни и те же пользователи, поскольку они входят в системы с одинаковым MSA. Пол желает убедиться в том, что пользователи получают одинаковые впечатления, когда переходят с Android на Windows и обратно. Кроме того, Пол отмечает, что многие пользователи Windows запускают UWP версию приложения также и на Xbox, когда находятся у себя дома.
Благодаря проекту Rome Android SDK Пол может использовать:
- Remote Systems API для обнаружения других устройств Windows, владельцем которых является пользователь. Remote Systems API позволит приложению Contoso Music обнаружить эти устройства в той же сети, а также через облако.
- В случае обнаружения Remote Launch API запустит соответствующие приложение на другом устройстве Windows.
- После того как приложение запустится на другом устройстве, Пол сможет использовать удаленные сервисы приложения для управления им на Windows с его устройства на Android. На данный момент мы не предлагаем эту функцию, но скоро в будущих версиях Android SDK она будет добавлена.
Таким образом, используя Android SDK проекта Rome, Пол сможет нивелировать разрыв в восприятие приложения, возникающий у пользователей при переходе с одной операционной системы на другую.
Последовательное рассмотрение функциональности
Мы вкратце проанализируем это на примерах Java и Xamarin. Полные примеры для UWP находятся здесь, а для Android тут.
Нажмите на изображение ниже, чтобы увидеть пример работы приложения под Android в действии:
Использование Xamarin
Аналогично этому здесь выражены фрагменты кода в Xamarin.
Сначала вы инициализируйте Connected Devices Platform:
1 2 | Platform.FetchAuthCode += Platform_FetchAuthCode; var result = await Platform.InitializeAsync(this.ApplicationContext, CLIENT_ID); |
Используя OAuth, Вы возвращаете себе auth_code:
1 2 3 4 5 | private async void Platform_FetchAuthCode(string oauthUrl) { var authCode = await AuthenticateWithOAuth(oauthUrl); Platform.SetAuthCode(token); } |
Терпеть надо обнаружить устройства:
1 2 3 4 5 6 7 8 9 10 | private RemoteSystemWatcher _remoteSystemWatcher; private void DiscoverDevices() { _remoteSystemWatcher = RemoteSystem.CreateWatcher(); _remoteSystemWatcher.RemoteSystemAdded += (sender, args) => { Console.WriteLine("Discovered Device: " + args.P0.DisplayName); }; _remoteSystemWatcher.Start(); } |
И, наконец, подключить и запустить идентификаторы URI с помощью LaunchUriAsync:
1 2 3 4 | private async void RemoteLaunchUri(RemoteSystem remoteSystem, Uri uri) { var launchUriStatus = await RemoteLauncher.LaunchUriAsync(new RemoteSystemConnectionRequest(remoteSystem), uri); } |
Если нужно посмотреть на код Xamarin, пожалуйста, направляйтесь на https://github.com/Microsoft/project-rome/tree/master/xamarin.
Подводя итог
Проект Rome разрушает барьеры между устройствами Windows и создает события, которые больше неограничены одним устройством. С сегодняшнего дня мы привносим эту возможность на устройства Android. Remote Systems API доступен в Windows 10. Он является ключевой частью проекта Rome, которая обеспечивает представление графа устройства и возможность для связи и управления. Это фундаментальное условие для улучшения взаимодействия пользователя со всеми приложениями и производительности на каждом устройстве.
Чтобы узнать об этом больше и просмотреть примеры кода, включая фрагменты, показанные выше, пожалуйста, обратитесь к следующим статьям и публикациям в блогах:
- Обзор проекта Rome API на примере создания приложений для Windows
- MSDN Связь приложений и устройств (проект Rome)
- GitHub Remote Systems API sample
- Проект Rome на GitHub: открытие команды запуска
- MSDN Создание и использование App Service
Для команды Windows Ваше мнение является очень важным. Донесите Ваше мнение до нас при помощи Windows Developer UserVoice site. Если у Вас появится прямая ошибка, пожалуйста, воспользуйтесь инструментом обратной связи, встроенным непосредственно в Windows 10.
Автор: Carmen Forsmann
Источник: Блог Windows
Написать ответ