정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

방법: Windows Phone용 App Connect를 사용하여 공유 선택기 확장

2012-02-09

App Connect를 사용하면 응용프로그램을 사진 뷰어의 공유 링크에서 실행할 수 있고 웹 서비스에 사진을 공유하기 위한 풍부한 사용자 환경도 제공할 수 있습니다. 이 항목에서는 사진 뷰어 공유 페이지에서 실행될 수 있는 응용프로그램을 만드는 방법에 대해 설명하고, 딥 링크 URI에서 해당하는 사진 FileId 매개 변수를 추출합니다. 사진 환경 확장에 대한 자세한 내용은 Windows Phone의 사진 확장성 개요를 참조하십시오.

이 항목에는 웹 서비스와의 통신을 위한 코드가 포함되어 있지 않습니다. 웹 서비스에 사진을 업로드하는 데 필요한 코드는 개발자가 제공해야 합니다. 응용프로그램에서의 웹 서비스 사용에 대한 자세한 내용은 Windows Phone의 네트워킹 및 웹 서비스 개요를 참조하십시오.

팁팁:

사진 확장성은 Windows Phone OS 7.1 에서 변경되었습니다. Windows Phone OS 7.0 에서 실행되는 응용프로그램의 사진 환경을 확장하는 방법에 대한 자세한 내용은 여기를 클릭하여 Windows Phone OS 7.0 개발자 설명서를 참조하십시오.

Windows Phone SDK 7.1 에서는 E0F0E49A-3EB1-4970-B780-45DA41EC7C28.xml 파일이 필요하지 않습니다. 공유 선택기를 확장하는 응용프로그램을 Windows Phone OS 7.1 로 업그레이드하는 경우 이 파일을 제거하고 이 항목에 나오는 새 확장성 기술을 사용하십시오.

Windows Phone SDK 의 이번 릴리스의 경우 이 항목은 단말기에서만 완료될 수 있고 Windows Phone 에뮬레이터에서는 완료될 수 없습니다. 에뮬레이터의 현재 버전에는 단말기의 사진 허브에 대한 액세스가 포함되어 있지 않습니다.

이 항목은 C# 개발을 기준으로 하지만 Visual Basic 코드도 제공됩니다. 

이 섹션에서는 응용프로그램을 만들고, 공유 선택기에 대한 확장을 선언하고, 응용프로그램 실행에 해당하는 이미지를 표시하기 위한 Image 컨트롤을 추가합니다.

공유 선택기 확장성 응용프로그램을 선언하려면

  1. Windows Phone용 Visual Studio 2010 Express 에서 파일 | 새 프로젝트 메뉴 명령을 선택하여 새 프로젝트를 만듭니다.

  2. 새 프로젝트 창이 표시됩니다. Visual C# 템플릿을 확장하고 Windows Phone용 Silverlight 템플릿을 선택합니다.

  3. Windows Phone 응용프로그램 템플릿을 선택합니다. 이름 상자에 선택한 이름을 입력합니다. 기본적으로, 이 이름은 공유 선택기 공유 페이지에 표시될 이름입니다.

  4. 확인을 클릭합니다. 새 Windows Phone 응용프로그램 창이 표시됩니다.

  5. 대상 Windows Phone 버전 메뉴에서 Windows Phone 7.1 이 선택되었는지 확인합니다.

  6. 확인을 클릭합니다. 새 프로젝트가 생성되고 MainPage.xaml이 Visual Studio 디자이너 창에서 열립니다.

  7. 프로젝트 메뉴에서 참조 추가를 선택합니다. .NET 탭에서 Microsoft.Xna.Framework를 선택하고 확인을 클릭합니다.

  8. 응용프로그램 매니페스트 파일인 WMAppManifest.xml을 열고 Tokens 요소 바로 아래에 App 요소의 자식으로 다음 코드를 추가합니다. 이는 응용프로그램이 공유 선택기 확장을 지원하도록 선언하는 것입니다.

    <Extensions>
          <Extension ExtensionName="Photos_Extra_Share" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" TaskID="_default" />
    </Extensions>
    
    
  9. 기본 페이지에 대한 코드 숨김 파일인 MainPage.xaml.cs를 열고 페이지의 맨 위에 다음 지시문을 추가합니다.

    using System.Windows.Media.Imaging;
    using Microsoft.Phone;
    using System.IO;
    using Microsoft.Xna.Framework.Media;
    using System.Windows.Navigation;
    
    
  10. MainPage.xaml에서 LayoutRoot라는 Grid를 다음 코드로 바꿉니다.

        <!--LayoutRoot is the root grid where all page content is placed.-->
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <!--TitlePanel contains the name of the application and page title.-->
            <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
                <TextBlock 
                    x:Name="ApplicationTitle" Text="APP CONNECT EXAMPLE" 
                    Style="{StaticResource PhoneTextNormalStyle}"/>
                <TextBlock 
                    x:Name="PageTitle" Text="shared picture" Margin="9,-7,0,0" 
                    Style="{StaticResource PhoneTextTitle1Style}"/>
            </StackPanel>
    
            <!--ContentPanel - place additional content here-->
            <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <Image 
                    Height="350" 
                    HorizontalAlignment="Left" 
                    Margin="15,15,0,0" 
                    Name="retrievePic" 
                    Stretch="Fill" 
                    VerticalAlignment="Top" 
                    Width="450" />
            </Grid>
        </Grid>
    
    

이 섹션에서는 응용프로그램 실행에 해당하는 사진의 FileId 매개 변수를 추출합니다. 해당 매개 변수 값을 사용하여 Image 컨트롤에 사진이 표시됩니다. 실제 응용프로그램에서 이 매개 변수는 이미지를 검색하고 이를 웹 서비스에 보내는 데 사용됩니다.

FileId 매개 변수를 추출하려면

  • MainPage.xaml.cs에서 다음 코드를 MainPage 클래스에 추가합니다. 이 코드는 OnNavigatedTo(NavigationEventArgs) 메서드를 구현하며 이 메서드는 응용프로그램을 실행한 URI에서 FileId 매개 변수를 찾습니다. FileId 매개 변수가 있으면 응용프로그램은 미디어 라이브러리에서 해당 사진을 가져오고, 그 사진으로 비트맵 이미지를 만들고, 만들어진 이미지를 retrievePic라는 Image 컨트롤에 표시합니다.

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        // Get a dictionary of query string keys and values.
        IDictionary<string, string> queryStrings = this.NavigationContext.QueryString;
    
        // Ensure that there is at least one key in the query string, and check 
        // whether the "FileId" key is present.
        if (queryStrings.ContainsKey("FileId"))
        {
            // Retrieve the picture from the media library using the FileID
            // passed to the application.
            MediaLibrary library = new MediaLibrary();
            Picture picture = library.GetPictureFromToken(queryStrings["FileId"]);
    
            // Create a WriteableBitmap object and add it to the Image control Source property.
            BitmapImage bitmap = new BitmapImage();
            bitmap.CreateOptions = BitmapCreateOptions.None;
            bitmap.SetSource(picture.GetImage());
    
            WriteableBitmap picLibraryImage = new WriteableBitmap(bitmap);
            retrievePic.Source = picLibraryImage;
        }
    }
    
    
참고참고:

응용프로그램이 실행되면 공유 선택기와 응용프로그램 목록 중 어디에서 실행되었는지 확인해야 합니다. 응용프로그램이 공유 선택기에서 실행된 경우 공유 UI를 표시하고 위에서 설명한 메서드를 사용하여 사진에 액세스해야 합니다. queryStrings["Action"] = "ShareContent" 여부를 확인한 결과 공유 선택기에서 실행되지 않았다면 표준 사진 선택 응용프로그램을 사용하여 이미지를 검색해야 합니다. 자세한 내용은 Windows Phone의 선택기을 참조하십시오.

단말기가 컴퓨터에 테더링되어 있는 경우 사진 허브를 사용하거나 사진 뷰어에서 응용프로그램을 실행할 수 없습니다. 그러나 응용프로그램을 로드하려면 단말기가 컴퓨터에 테더링되어야 합니다. 이 프로시저에서는 응용프로그램을 단말기로 전송하고 이를 테스트하는 방법에 대해 설명합니다.

단말기에서 App Connect를 테스트하려면

  1. Windows Phone에서 카메라를 사용하여 사진을 찍습니다.

  2. 휴대폰을 컴퓨터에 테더링하고 Zune 소프트웨어에서 인식할 때까지 기다립니다. 응용프로그램이 Windows Phone 단말기에 배포되도록 설정되어 있는지 확인하고 메뉴에서 디버그, 디버깅 시작을 차례로 선택합니다. 응용프로그램이 표시되면 디버그 메뉴로 돌아가서 디버깅 중지를 선택합니다. 컴퓨터에서 단말기를 분리하고 시작 화면으로 이동합니다.

  3. 시작 화면에서 사진 응용프로그램을 탭한 다음 모두를 탭합니다. 카메라 앨범 섹션을 탭하여 사진을 찾은 다음 사진 축소판 이미지를 탭하여 사진을 확장합니다.

  4. 페이지 맨 아래의 응용프로그램 모음에서 세 개의 점을 탭합니다. 메뉴가 표시되고 목록의 맨 아래에 공유… 옵션이 있습니다. 공유…를 선택합니다.

  5. 공유 페이지에서 응용프로그램의 이름을 선택합니다. 응용프로그램이 열리고 Image 컨트롤에 사진이 표시됩니다.

왼쪽에서 오른쪽으로, 다음 그림은 Your Share Picker App이라는 응용프로그램을 공유 선택기에서 실행하는 방법을 보여 줍니다.

OEM_OemMoAppDevGuide_SharePicker

표시:
© 2015 Microsoft