Поделиться через


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
Наследование
Object Platform::Object IInspectable 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)

Отменяет существующий маркер общего доступа.

Применяется к