此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
MSDN Library
信息
您所需的主题如下所示。但此主题未包含在此库中。

Windows Phone 8 自动上传应用

2014/6/18

本主题介绍您的应用如何使用后台代理自动将照片上载至照片存储服务。提供自动上载功能的应用注册自动上载扩展,而且从“设置”应用启动时,启动至自动上载设置页。若要执行上载,自动上载应用必须通过使用 ResourceIntensiveTask 类来使用资源密集型后台代理。与其他后台代理不同的是,自动上载应用的资源密集型代理不会过期。

重要说明重要说明:

由于必须符合手机上的限制才能运行资源密集型代理,因此该代理可能从不在特殊的手机上运行。例如,如果用户没有对 Wi-Fi 或 PC 的访问权限,则他们可能从不会有非蜂窝网络连接,并且其手机上的资源密集型代理将从不运行。而且,资源密集型代理一次运行一个,因此当手机上安装了多个使用资源密集型代理的应用时,代理运行的可能性变得更低。设计应用时应该考虑这个问题。

本主题包括以下部分。

提供自动上载功能的应用从“设置”应用启动时,启动至设置页。在“设置”应用中,photos+camera 设置页在其底部列出“应用”链接。该链接启动自动上载“应用”页,如下图所示。

Auto-upload apps from the Settings app

在该页列出支持自动上载的应用。点按每一个应用时,它们都启动至自动上载设置页。

要指定应用支持自动上载,请注册 Photos_Auto_Upload 扩展。在 WMAppManifest.xml 文件中指定扩展。在 Tokens 元素的后面,在 Extensions 元素的内部,使用以下 Extension 元素指定自动上载扩展。


<Extension ExtensionName="Photos_Auto_Upload"
           ConsumerID = "{5B04B775-356B-4AA0-AAF8-6491FFEA5632}"
           TaskID="_default"/>


Windows Phone 清单设计器不支持扩展,请使用 XML(文本)编辑器编辑它们。有关更多信息,请参见如何修改 Windows Phone 8 的应用清单文件

“设置”应用启动应用时,使用包含特殊关键字的深层链接 URI 启动应用。当深层链接 URI 包含关键字 ConfigurePhotosUploadSettings 时,您的应用启动至用户可以配置自动上载的设置页。以下代码演示 URI 映射器类,它将来自“设置”应用的启动映射到应用的自动上载设置页。

using System;
using System.Windows.Navigation;

namespace CustomMapping
{
    class CustomUriMapper : UriMapperBase
    {
        public override Uri MapUri(Uri uri)
        {
            // The incoming URI
            string tempUri = uri.ToString();

            // Search for a specific deep link URI keyword
            if (tempUri.Contains("ConfigurePhotosUploadSettings"))
            {
                // Launch to the auto-upload settings page.
                return new Uri("/AutoUploadSettingsPage.xaml", UriKind.Relative);
            }

            // Otherwise perform normal launch.
            return uri;
        }
    }
}

在本例中,URI 映射器通过用自动上载设置页 URI 替换传入的 URI,将传入的 URI 映射到名为 AutoUploadSettingsPage.xaml 的页面。随后,由此方法返回的 URI 将由应用的根帧使用,以在应用启动时启动第一页。由于根帧被分配为应用初始化,根帧将使用自定义的 URI 映射器。以下代码显示了在 App.xaml.cs 文件的 InitializePhoneApplication 方法中如何分配名为 CustomMapping.CustomUriMapper 的 URI 映射器。

// Do not add any additional code to this method
private void InitializePhoneApplication()
{
    if (phoneApplicationInitialized)
        return;

    // Create the frame but don't set it as RootVisual yet; this allows the splash
    // screen to remain active until the application is ready to render.
    RootFrame = new PhoneApplicationFrame();
    RootFrame.Navigated += CompleteInitializePhoneApplication;

    // Handle navigation failures
    RootFrame.NavigationFailed += RootFrame_NavigationFailed;

    // Assign the custom URI mapper class to the application frame.
    RootFrame.UriMapper = new CustomMapping.CustomUriMapper();

    // Ensure we don't initialize again
    phoneApplicationInitialized = true;
}

支持自动上载的应用需要两个部分:用于显示设置页(和其他页)的前台应用项目和用于执行上载的后台代理。

后台代理必须是资源密集型代理(它必须注册为 Microsoft.Phone.Scheduler.ResourceIntensiveTask)。在条件许可的情况下,资源密集型代理通常运行 10 分钟。它需要非蜂窝连接和外部电源等其他东西。有关后台代理及其限制的更多信息,请参见 Windows Phone 8 的后台代理

在为自动上载应用创建资源密集型代理时,不要设置任务过期时间。这将确保如果您的应用有 14 天都没有打开,代理不会过期。

应用要执行自动上载,则必须向用户提供将用户凭据输入照片存储 Web 服务的方式。您的前台应用可以使用设置页完成此任务,但您不必使用相同的页面。对于存储用户凭据,我们建议使用 ProtectedData 类加密它们。有关更多信息,请参见如何加密 Windows Phone 8 的数据

您的后台代理负责监视媒体库和跟踪需要上载的照片。它也需要跟踪上载状态,以便在手机失去连接后可以继续上载。有关访问媒体库的更多信息,请参见 Windows Phone 8 的数据中的“媒体库”部分。

显示:
© 2015 Microsoft