0

PeerFinderWindows Phone 8 ProximityAPIのクラスを使用して、ピア ツー ピア ベースでデバイスを検出しようとしています。

Windows Phone 8 エミュレーターを使用して、Visual Studio 2013 でアプリを実行しています。私はPeerFinderこのようなクラスを使用します:

PeerFinder.AllowInfrastructure = true;
PeerFinder.Start();

この後、次のように他のピアを検出しようとします。

while (true)
{
    try
    {
        var result = await PeerFinder.FindAllPeersAsync();
        if (result.Count > 0)
            System.Diagnostics.Debug.WriteLine("FOUND A PEER!");
    }
    catch (Exception ex)
        System.Diagnostics.Debug.WriteLine("encountered error!!!");
}

FindAllPeersAsync() の行で発生するエラーは次のとおりです。

An exception of type 'System.Exception' occurred in mscorlib.ni.dll but was not handled in user code
Additional information: The device is not connected. (Exception from HRESULT: 0x8007048F)

問題は、実際のデバイスではなくエミュレーター内で実行されているという事実である可能性があると思いました。このようなネットワーキング (インフラストラクチャの有無にかかわらずピアツーピア) はエミュレーターで可能ですか、それとも何か忘れていますか?

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

2

このページで述べられているように、「Windows Phone エミュレーターには Proximity をテストするためのサポートが組み込まれていないため、NFC をサポートする Windows Phone 8 を使用して NFC 機能をテストする必要があります。」および「Windows Phone エミュレーターを使用して Bluetooth をテストすることはできません。」
実際のデバイスでコードをテストすることをお勧めします。そうしないと、アプリを適切にデバッグできない可能性があります。

Windows Phone 8 の近接性
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207060(v=vs.105).aspx

于 2013-11-08T19:02:31.680 に答える
1

ユーザーがリストから近くのデバイスを選択する PeerFinder 参照モード (FindAllPeersAsync など) では、エミュレーターの使用はサポートされていません。

ただし、ユーザーがリストから選択するのではなく、2 つのデバイスを連続してタップする NFC を使用する「トリガー」モード (たとえば、TriggeredConnectionStateChanged を使用するモード) は、実際にはエミュレーターでサポートされていますが、それを機能させるには外部ツールが必要です。ここから入手可能: http://proximitytapper.codeplex.com/

2 つの異なるエミュレーターを起動し (エミュレーターを同時に実行できるようにするには、エミュレーターの解像度が異なる必要があります)、ツールで両方のエミュレーターを複数選択し (リストに表示されます)、タップしてシミュレートするだけです。 NFC で連続してタップされたかのように。

于 2015-01-16T03:18:33.173 に答える