SharedStorageAccessManager Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Позволяет приложению поделиться файлом с другим приложением путем передачи маркера с помощью активации URI, службы приложений, REST API и т. д. Целевое приложение активирует маркер, чтобы получить файл, общий доступ к файлу в исходном приложении.
public ref class SharedStorageAccessManager abstract sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
class SharedStorageAccessManager final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public static class SharedStorageAccessManager
Public Class SharedStorageAccessManager
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
В следующем примере исходное приложение запускает приложение для сопоставления и предоставляет GPX-файл, содержащий маршруты, отображаемые целевым приложением.
Во-первых, исходное приложение получает маркер для GPX-файла и использует активацию протокола для запуска целевого приложения.
public async void ShareMostRecentDirections()
{
// Get the most recently opened .gpx file
// from the recently used file list.
StorageItemMostRecentlyUsedList mostRecent =
StorageApplicationPermissions.MostRecentlyUsedList;
String mruToken = mostRecent.Entries.FirstOrDefault().Token;
StorageFile file = await mostRecent.GetFileAsync(mruToken);
// Get the token to share access to the updated .gpx file.
String sharingToken = SharedStorageAccessManager.AddFile(file);
//Launch the driving application .
Uri driveTo = new Uri("nokia-drive-to:?Gpxfile=" + sharingToken);
var launch = await Launcher.LaunchURIAsync(driveTo);
}
Затем целевое приложение получает GPX-файл, предоставляя маркер, полученный от исходного приложения.
protected override async void OnActivated(IActivatedEventArgs args)
{
var protocolArgs = args as ProtocolActivatedEventArgs;
// Get the token from the URI.
var queryStrings = new WwwFormUrlDecoder(protocolArgs.Uri.Query);
string gpxFileToken = queryStrings.GetFirstValueByName("GpxFile");
// Get the .gpx file and call a custom method
// to display driving directions.
if (!string.IsNullOrEmpty(gpxFileToken))
{
PlotGpxFile(await
SharedStorageAccessManager.RedeemTokenForFileAsync(gpxFileToken));
}
}
Комментарии
Ниже приведена последовательность шагов, которая позволяет приложению предоставлять общий доступ к файлу другому приложению путем передачи маркера в рамках активации URI, например.
- Исходное приложение вызывает метод AddFile , чтобы получить маркер общего доступа, который передается целевому приложению, которое запускается с URI.
- Целевое приложение вызывает метод RedeemTokenForFileAsync для получения общего файла.
- При необходимости исходное приложение может вызвать метод RemoveFile , чтобы отозвать маркер, полученный ранее путем вызова метода AddFile . Дополнительные сведения об активации URI см. в разделе Запуск приложения по умолчанию для URI.
На использование класса SharedStorageAccessManager и маркеров общего доступа распространяются следующие требования и ограничения.
- Маркер общего доступа можно активировать только один раз. После этого маркер становится недействительным.
- Срок действия маркера общего доступа истекает через 14 дней и становится недействительным.
- Исходное приложение не может получить более одной тысячи маркеров общего доступа. Однако после активации, удаления или истечения срока действия маркера он больше не учитывается в квоте исходного приложения.
Сетевые файлы не поддерживаются этим классом.
Методы
AddFile(IStorageFile) |
Возвращает маркер общего доступа, который позволяет приложению совместно использовать указанный файл с другим приложением. |
RedeemTokenForFileAsync(String) |
Получает файл, общий доступ к которым предоставляется другим приложением, предоставляя маркер общего доступа, полученный от исходного приложения. |
RemoveFile(String) |
Отменяет существующий маркер общего доступа. |