Windows Phoneアプリケーション開発入門

第38回Pictures HubとMusic + Videos Hubにアプリケーションを統合してみよう!(1)

はじめに

Windows Phoneには、⁠People」⁠Pictures」⁠Games」⁠Music + Videos」⁠Marketplace」⁠Office」といったテーマごとに分けられた6のハブがあります。

例えば、People Hubであればアドレス帳や今までの発着信履歴、FacebookやWindows Liveで投稿したステータスの一覧などのPeople(=人)に関連した情報を閲覧することができます。

また、Pictures Hubであれば写真に関するコンテンツが集約されており、カメラロールやIEやアプリケーションで保存した画像、Facebookのアルバムなどのオンラインに保存している写真を閲覧することができます。

現段階では、他アプリケーションから自アプリケーションを起動することは基本的にできません。しかし、下図のように自アプリケーションと同様のテーマのハブ内に組み込み、そのハブから自アプリケーションを起動させることが可能です。

画像

自アプリケーションが、ハブ内に組み込まれているのが判りますでしょうか。このハブ内に組み込む機能のことをMSDNでは「Integrate(統合⁠⁠」と表現されています。

ご存知でしょうか。アプリケーションリストはアプリケーションが増えれば増えるほど長くなっていきます。Windows Phoneは、インストールしたアプリケーションの数が45個を超えるとインデックスが追加されるのですが、リスト自体が長くなっているため、任意のアプリケーションにアクセスしづらいです。

さらに地域設定が日本語になっている場合は、かなとアルファベットが表示されているため、英語表記の場合と比較して表示項目が多いです。インデックスそのものをスクロールしないといけなく、よりアプリケーションを起動させるのが難しくなります。

ユーザーの目につきやすいようにアプリを配置してもらうためには、テーマに沿ったハブにアプリケーションを統合しましょう。今回は、Pictures HubのトップページとMusic + Videos Hubのトップページにアプリケーションを並べる方法をご紹介いたします。

Music + Videos Hubとの統合する

これは私が使っているIS12のMusic + Videos Hubを撮影しました(光の加減で私が写り込んでいますが気にしないでください⁠⁠。

画像

一目で、Microsoft純正ではない一般のアプリケーションやYoutubeが並んでいるのが判ります。これが音楽と動画関連のアプリケーションがMusic + Videos Hubに統合されている状態です。これらのアプリのようにMusic + Videos Hubへのアプリ統合の方法についてご紹介させていただきます。

WMAppManifest.xmlのApp要素の属性に追記する必要があります。まずはソリューションエクスプローラー開いて頂き、Propertiesフォルダを開きます。

画像

蛍光ペンで線を引いた一番下にあるWMAppManifest.xmlを開きます。以下のようにApp要素の属性がずらずらと並んでいます。ここに「HubType=⁠1″」の指定を追加します。

  <App xmlns="" ProductID="{0000000-0000-0000-0000-000000000000}" 
    Title="HubTestApp" RuntimeType="Silverlight" 
    Version="1.0.0.0" Genre="apps.normal" Author="author" 
    Description="" Publisher="MusicAndVideosHubTest" 
    HubType="1">

ツールバーにある[ビルド]からリビルドを実行しておいてください。アプリをデプロイ後にMusic + Videos Hubを確認すると、アプリケーション一覧にHubTestAppが追加されているのが分かります。

画像

Pictures Hubからアプリケーションを起動できるようにする

さて、同様にPictures Hubのトップページから特定のWindows Phone OS 7.1向けアプリケーションを起動することができます。こちらもWMAppManifest.xmlを編集します。

WMAppManifest.xmlのApp要素に子要素を追加する必要があります。まずはソリューションエクスプローラー開いて頂き、Propertiesフォルダを開きます。

画像

蛍光ペンで線を引いているWMAppManifest.xmlを開きます。App要素の子要素として、以下のようにExtensions要素を追加します。Extensions要素が既に定義されている場合は、Extension要素を追加するだけで問題ありません。なお、ExtensionNameやConsumerIDの値は固定となっていますので、変更しないでください。

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

WMAppManifest.xmlのどこにExtensions要素を追加してよいのか分かりづらいという方がいるかもしれません。例としてWMAppManifest.xmlの全文を記載したいと思います。

<?xml version="1.0" encoding="utf-8"?>

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
  <App xmlns="" ProductID="[00000000-0000-0000-0000-000000000000}" 
       Title="PictureHubWP71Test" RuntimeType="Silverlight" 
       Version="1.0.0.0" Genre="apps.normal" 
       Author="author" Description="" Publisher="PictureHubWP71Test">
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_GAMERSERVICES"/>
      <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
      <Capability Name="ID_CAP_IDENTITY_USER"/>
      <Capability Name="ID_CAP_LOCATION"/>
      <Capability Name="ID_CAP_MEDIALIB"/>
      <Capability Name="ID_CAP_MICROPHONE"/>
      <Capability Name="ID_CAP_NETWORKING"/>
      <Capability Name="ID_CAP_PHONEDIALER"/>
      <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
      <Capability Name="ID_CAP_SENSORS"/>
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
      <Capability Name="ID_CAP_ISV_CAMERA"/>
      <Capability Name="ID_CAP_CONTACTS"/>
      <Capability Name="ID_CAP_APPOINTMENTS"/>
    </Capabilities>
    <Tasks>
      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
    </Tasks>
    <Tokens>
      <PrimaryToken TokenID="PictureHubWP71TestToken" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
          <Count>0</Count>
          <Title>PictureHubWP71Test</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
    <Extensions>
      <Extension ExtensionName="Photos_Extra_Hub" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" TaskID="_default" />
    </Extensions>
  </App>
</Deployment>

ツールバーにある[ビルド]からリビルドを実行しておいてください。アプリをデプロイし、Pictures Hubを確認すると、アプリケーション一覧にPictureHubWP71Testが追加されているのが分かります。

画像

PictureHubWP71Testの文字がラーメンの画像と被ってしまって、文字が読みづらくなっていますがご了承ください。

さいごに

今回は簡単にPictures HubとMusic + Videos Hubのアプリケーションリストに表示する方法ご紹介させて頂きました。Pictures Hubにはカメラアプリや画像処理系のアプリを統合し、Music + Videos Hubには音楽再生プレイヤーアプリや動画サイトを見るアプリと統合するとよいかもしれませんね。

次回は、Windows Phone OS 7.0とOS 7.1それぞれの場合における、Pictures Hubでの共有と編集の統合の方法についてご紹介したいと思います。

おすすめ記事

記事・ニュース一覧