2012-06-27 4 views
6

を使用しているとき、私は散発的にエラーを取得:再び「パイプがクローズされている」私はWinRTのGeolocatorを使用する場合はWinRTのGeolocator

{"The pipe is being closed. (Exception from HRESULT: 0x800700E8)"} 

を、これは散発的です。助言がありますか?

Windows.Devices.Geolocation.Geoposition _Postion = null; 
try 
{ 
    var _Locator = new Windows.Devices.Geolocation.Geolocator(); 
    _Postion = await _Locator.GetGeopositionAsync(); 
} 
catch { /* continue, null okay */ } 

if (_Postion == null) 
{ 
    /* use alternate */ 
} 
else 
{ 
    /* use location */ 
} 

これはシミュレータにありますが、ローカルマシンでも実行されます。 通常、このエラーは中断しません。 アプリを突然終了させるだけです。 結果が破損した場合。 これが結果のエラーです。

+1

Geolocator loc = new Geolocator(); try { loc.DesiredAccuracy = PositionAccuracy.High; Geoposition pos = await loc.GetGeopositionAsync(); var lat = pos.Coordinate.Point.Position.Latitude; var lang = pos.Coordinate.Point.Position.Longitude; Status = loc.LocationStatus; return GetGpsInfoObject(pos); } catch (System.UnauthorizedAccessException) { return null; } 

私はにコードを変更しました。あなたがコードを投稿するとき、私は自分のdownvoteを取り去ります。 –

+1

@Jerry Nixon nice、あなたのコード例は、役に立たないwinrtエラーメッセージを理解するのに役立ちました – Calanus

+0

@Jerry Nixonこの解決策を教えてもらえますか?セルラーネットワークでタブレットにWindowsストアアプリを実行すると、このエラーが発生します。 –

答えて

1

ローカリゼーションを「シミュレート」に設定したときにデバイスシミュレータを使用している場合は、ワールドアイコン(ディスプレイとカメラの設定の間)をクリックして無効にすることができます。模擬位置 "オプション

+0

このオプションはどこでタブレットで入手できますか? –

0

この問題の根本的な原因は、GeoLocatorが位置情報APIを使用していることです。

エラーは、「パイプが閉じられています」という文字列(この場合は役に立たない)にマップされているように見えるHRESULT_FROM_WIN32(ERROR_NO_DATA)です。これは、プラットフォームが有効なレポートを提供するセンサーを認識しないと予想されるエラーです。

0

私のプロジェクトでも同様の散発的な例外が発生しました。添付した画像のスクリーンショットを見てください。 enter image description here

私のために働いた解決策はここにありますが、他の人にとってうまくいくかどうかはわかりません。

これは前に私のコードだった:あなたは、コードをポストしない限り、私たちはあなたを助けることができない

Geolocator loc = new Geolocator(); 
try 
{ 
     loc.DesiredAccuracy = PositionAccuracy.High; 

     Geoposition pos = await loc.GetGeopositionAsync(); 
     var lat = pos.Coordinate.Point.Position.Latitude; 
     var lang = pos.Coordinate.Point.Position.Longitude; 
     Status = loc.LocationStatus; 

     return GetGpsInfoObject(pos); 
} 
catch (Exception) 
{ 
      return null; 
} 
+0

例外が発生したときに 'null'を返すだけですか? – demo

関連する問題