2017-09-27 26 views
0

私は 'plugin.geolocator'を使用して電話の現在の地理的位置を取得しようとしていますが、アンドロイドでタスクのキャンセルの例外を取得しています。ここで私が試したコードです。なぜこの例外が発生しているのかご意見をお聞かせください。地理位置はxamarinで動作していませんandroid

サンプルコード:

  var locator = CrossGeolocator.Current; 
      locator.DesiredAccuracy = -1; 

      if (locator.IsGeolocationEnabled) 
      { 
       var position = await locator.GetPositionAsync(TimeSpan.FromMilliseconds(5000)); 
      } 

これらは、私はアンドロイドのマニフェストファイルに与えてきたの権限あります。

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

エミュレータでテスト中にタスクキャンセルの例外が発生しています。私は時間のスパンを変更しようとしましたが、仕事のキャンセルの例外を取る運はありません。

+0

エミュレータでGPSを有効にしていますか? – SushiHangover

+0

はい、エミュレータでgpsを有効にしました。私も物理的なデバイスでテストしている、物理的なデバイスでもGPSは動作していません。 – Deepak

答えて

0

(大きな値 - 結果を持っている>より多くのチャンス)所望の精度に異なる値を設定します。

locator.DesiredAccuracy = 100; 
+0

私は大きな価値を設定しようとしましたが、運はありませんでした。ジオロケーションが機能していません。 – Deepak

+0

Downvoteは人々にあなたを助けることを奨励しません...あなたはDesiredAccuracy = -1というコードを投稿し、それが私の提案の理由です。 https://jamesmontemagno.github.io/GeolocatorPlugin/CurrentLocation.htmlこのプラグインを使用するとGeolocationは多くのデバイスでうまく動作します... –

+0

私は答えに投票しませんでした。私の手でのみ起こる可能性がある場合。あなたはどうやって投票することができますか、私の意図で私は投票しませんでした。 – Deepak

0

さて、あなたはまた、あなたのMainActivityクラスにOnRequestPermissionResult上書きする必要があります。

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 
{ 
    PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults); 

} 

AndroidターゲットバージョンがAPI 25以上であることを確認してください。 https://jamesmontemagno.github.io/GeolocatorPlugin/GettingStarted.html

+0

こんにちは、Android SDKマネージャからApi 26をダウンロードしましたが、対象のアンドロイドバージョンにはApi 26レベルが表示されないため、Api 25のみが表示されます。 – Deepak

関連する問題