{"id":47175,"date":"2020-05-06T11:09:38","date_gmt":"2020-05-06T18:09:38","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/xamarin\/?p=47175"},"modified":"2020-05-06T11:51:38","modified_gmt":"2020-05-06T18:51:38","slug":"contact-tracing-exposure-notification-api","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/contact-tracing-exposure-notification-api\/","title":{"rendered":"Exposure Notification API Support for Xamarin Apps"},"content":{"rendered":"<p>Last month, Apple and Google announced plans for creating Exposure Notification APIs. By leveraging Bluetooth Low Energy, this help developers implement contact tracing for both <a href=\"https:\/\/www.apple.com\/covid19\/contacttracing\/\" target=\"_blank\" rel=\"noopener noreferrer\">iOS<\/a> and <a href=\"https:\/\/blog.google\/documents\/55\/Android_Contact_Tracing_API.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Android<\/a>. Our team has been tracking the releases of these APIs to ready them for Xamarin developers. Today, we are pleased to announce our first preview of bindings for the <a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.iOS.ExposureNotification\/\" rel=\"noopener noreferrer\" target=\"_blank\">iOS<\/a> and <a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.GooglePlayServices.Nearby.ExposureNotification\/\" rel=\"noopener noreferrer\" target=\"_blank\">Android<\/a> Exposure Notification APIs!<\/p>\n<h2>Cross-Platform Exposure Notification API<\/h2>\n<p>In addition to the core APIs, we have been prototyping a new, cross-platform API to simplify building contact tracing apps. A preview of this API is ready today! Find the project on the <a href=\"https:\/\/github.com\/xamarin\/xamarin.exposurenotification\">Xamarin.ExposureNotification GitHub repo<\/a>. Below is more information about how Exposure Notifications work. As well as details on the cross-platform API we are building for developers.<\/p>\n<p><center>\n<img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/05\/MicrosoftTeams-image.png\" alt=\"Exposure Notification: Two devices sharing unique identifiers over bluetooth\" width=\"438\" height=\"277\" class=\"aligncenter size-full wp-image-47228\" srcset=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/05\/MicrosoftTeams-image.png 438w, https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/05\/MicrosoftTeams-image-300x190.png 300w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/>\n<\/center><\/p>\n<h2>How Exposure Notifications Work<\/h2>\n<p>Exposure Notifications rely heavily on generating and storing completely random rolling unique identifiers on a device. These are then broadcast to nearby devices. The devices detect nearby identifiers and store them as they enter into range (or contact) for up to 14 days.<\/p>\n<p>A person will confirm a diagnosis by telling their device. It then anonymously submits the locally-stored, self-generated rolling of unique identifiers (from the last 14 days) to a backend service. This is provided by the app implementing the API.<\/p>\n<p>Devices continually request the keys submitted by diagnosed people from the backend server. The device compares these keys to the unique identifiers of other devices in range from the last 14 days. Which it does to assess any potential risk of exposure. The app then prompts the user about potential exposure. Allowing the user to take appropriate actions to isolate themselves and monitor symptoms.<\/p>\n<h2>Learn More Today<\/h2>\n<p>Read more about the released first previews of:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.iOS.ExposureNotification\/\">Apple&#8217;s Exposure Notification API<\/a> for Xamarin.iOS<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.GooglePlayServices.Nearby.ExposureNotification\/\">Google&#8217;s Exposure Notification API<\/a> for Xamarin.Android<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.ExposureNotification\" rel=\"noopener noreferrer\" target=\"_blank\">Cross-Platform Exposure Notification<\/a> Library for Xamarin.iOS &#038; Xamarin.Android<\/li>\n<\/ul>\n<p>Browse the bindings, cross-platform API, and &#8220;Getting Started&#8221; guides on the <a href=\"https:\/\/github.com\/xamarin\/xamarin.exposurenotification\">Xamarin.ExposureNotification GitHub repo<\/a>.<\/p>\n<p>Building an application using these APIs requires a secure backend for storing and processing unique identifiers. The team has put together <a href=\"https:\/\/github.com\/xamarin\/xamarin.exposurenotification\">a full sample<\/a> powered by Azure Functions and Entity Framework. This sample is to be used as <strong>an example<\/strong> (not a reference) for building out a solution. Additionally, read through <a href=\"https:\/\/blog.google\/inside-google\/company-announcements\/apple-and-google-partner-covid-19-contact-tracing-technology\" target=\"_blank\" rel=\"noopener noreferrer\">Google<\/a> and <a href=\"https:\/\/www.apple.com\/covid19\/contacttracing\/\" target=\"_blank\" rel=\"noopener noreferrer\">Apple\u2019s<\/a> recommendations for securing notifications appropriately.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Announcing the first preview of Exposure Notification APIs for devices. Read through to get a full breakdown of what APIs are available and our first preview of a full cross-platform API for Xamarin developers.<\/p>\n","protected":false},"author":560,"featured_media":47228,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2,556,1,291],"tags":[429,8543,8542],"class_list":["post-47175","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developers","category-integrations","category-xamarin","category-xamarin-platform","tag-components","tag-contact-tracing","tag-exposure-notification"],"acf":[],"blog_post_summary":"<p>Announcing the first preview of Exposure Notification APIs for devices. Read through to get a full breakdown of what APIs are available and our first preview of a full cross-platform API for Xamarin developers.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/47175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/560"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=47175"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/47175\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/47228"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=47175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=47175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=47175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}