3

新しいカスタム ページ レイアウトを使用する Microsoft Band アプリを作成しています。Microsoft Visual Studio Community 2013 update 4 を使用しています。すべて正常に動作しており、アプリはテスト環境でうまく動作します (つまり、アプリをコンピューターから電話にプッシュした場合)。ただし、ストア ビルドを作成し、ベータ アプリ パッケージを作成してストアからダウンロードし、アプリを介してバンド タイルをインストールしようとすると、例外が発生します。繰り返しますが、アプリを介してバンド タイルをインストールした場合、アプリが開発環境からプッシュされた場合、例外は発生しませんが、同じコードを使用してアプリ パッケージを作成し、プロセスを繰り返した場合は発生しますが、新しくダウンロードされたバイナリ。

バンド タイルがバンドに正常に追加されましたが、バンド アプリには、追加しようとした 5 つのカスタム ページ レイアウトの最初のものしかありません。多くの試行錯誤の結果、私はこれを知っています (App Store にアップロードされた数十のベータ版アプリ パッケージ)。

私は他のベータ テスターに​​依頼しましたが、全員が同じ例外を受け取りました。

例外の詳細はこちら

Microsoft.Band.BandIOException:
Exception of type 'System.Resources.MissingManifestResourceException' was thrown. ---> System.Resources.MissingManifestResourceException: 
Exception of type 'System.Resources.MissingManifestResourceException' was thrown.
at
System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
at
Microsoft.Band.BandResources.get_CommandStatusError()
at
Microsoft.Band.BandClient.CheckStatus(CargoStatus status, CommandStatusHandling statusHandling)
at
Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId, UInt32 layoutIndex, PageLayout layout)
--- End of inner exception stack trace ---
at
Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId, UInt32 layoutIndex, PageLayout layout)
at
Microsoft.Band.BandClient.AddTileOutsideSync(BandTile tile)
at
Microsoft.Band.BandClient.<>c__DisplayClass9b.<AddTile>b__9a()
at
Microsoft.Band.BandClient.RunUsingSynchronizedFirmwareUI(Action insideSync, Action afterSync)
at
Microsoft.Band.BandClient.AddTile(BandTile tile, Guid applicationId, IReadOnlyList`1 installedTiles)
at
Microsoft.Band.BandClient.<>c__DisplayClass6f.<<AddTileAsync>b_6c>d__71.MoveNext()
-- End of stack tracke from previous location where exception was thrown ---

多くの試行錯誤の後、問題を次のコードに単純化しました。App Store からバイナリを取得してメソッドを実行すると、エラーが発生します。ただし、Microsoft Visual Studio 2013 環境を介してローカル コンピューターからバイナリがプッシュされ、メソッドが実行されると、エラーは発生しません。さらに、カスタム ページ レイアウトを追加する行を削除し、ストアとテストを通じてアプリを送信すると、例外はスローされません。

public async Task CreateBandTile() {
        try
        {
            Guid tileId = new Guid("2D3A78E2-84BB-4E56-AFEB-B160B2433E20");
            IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
            IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]);

            BandTile myTile = new BandTile(tileId)
            {
                Name = "My Band Tile",
                TileIcon = await LoadIcon("ms-appx:///Assets/IconLarge.png"),
                SmallIcon = await LoadIcon("ms-appx:///Assets/IconSmall.png"),
                IsBadgingEnabled = false
            };

            FlowPanel page = new FlowPanel(
                new TextBlock()
                {
                    ElementId = 1,
                    Rect = new PageRect(0, 0, 100, 30),
                    Font = TextBlockFont.Small
                }
            )
            {
                Rect = new PageRect(0, 0, 245, 30)
            };

            // *** If I remove the following line, no exception is thrown ***
            myTile.PageLayouts.Add(new PageLayout(page));

            // Remove the Tile from the Band, if present. 
            await bandClient.TileManager.RemoveTileAsync(tileId);

            // Create the Tile on the Band.
            await bandClient.TileManager.AddTileAsync(myTile);
        }
        catch (Exception)
        {
            throw;
        }
}

ここで何が間違っていますか?おそらく私は、カスタム レイアウトを使用する MS アプリ ストアを通じてアプリを送信した最初の開発者です。Microsoft 側にバグがあるように感じます。

4

1 に答える 1

0

このバグは、新しい Microsoft Band SDK のリリースで解決されました。

于 2015-10-21T17:24:22.817 に答える