当前位置: 首页 > 知识库问答 >
问题:

如何获取GPS或定位

墨星鹏
2023-03-14

我尝试了教程GPS和我得到以下错误信息。似乎有什么问题?

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

//-- added  these


using Android.Locations;
using System.Collections.Generic;
using System.Threading;
using System.Text;


namespace GetLocation
{

    [Activity(Label = "Get Location", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity, ILocationListener
    {
        //int count = 1;
        private Location _currentLocation;
        private LocationManager _locationManager;
        private TextView _locationText;
        private TextView _addressText;

        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView(Resource.Layout.Main);
            _addressText = FindViewById(Resource.Id.address_text);
            _locationText = FindViewById(Resource.Id.location_text);
            FindViewById(Resource.Id.get_address_button).Click += AddressButton_OnClick;

            InitializeLocationManager();        
        }

        //public void OnLocationChanged(Location location) {}
        public void OnProviderDisabled(string provider) {}
        public void OnProviderEnabled(string provider) {}
        public void OnStatusChanged(string provider, Availability status, Bundle extras) {}

        private void InitializeLocationManager()
        {
            _locationManager = (LocationManager) GetSystemService(LocationService);
            var criteriaForLocationService = new Criteria
            {
                Accuracy = Accuracy.Fine
            };
            var acceptableLocationProviders = _locationManager.GetProviders(criteriaForLocationService, true);

            if (acceptableLocationProviders.Any())
            {
                _locationProvider = acceptableLocationProviders.First();
            }
            else
            {
                _locationProvider = String.Empty;
            }
        }

        protected override void OnResume()
        {
            base.OnResume();
            _locationManager.RequestLocationUpdates(_locationProvider, 0, 0, this);
        }

        protected override void OnPause()
        {
            base.OnPause();
            _locationManager.RemoveUpdates(this);
        }

        private void AddressButton_OnClick(object sender, EventArgs eventArgs)
        {
            if (_currentLocation == null)
            {
                _addressText.Text = "Can't determine the current location.";
                return;
            }
            new Thread(() =>
                       {
                var addressText = "Unable to find a location.";
                var geocoder = new Geocoder(this);
                var addressList = geocoder.GetFromLocation(_currentLocation.Latitude, _currentLocation.Longitude, 50);
                var address = addressList.FirstOrDefault();

                if (address != null)
                {
                    var deviceLocation = new StringBuilder();
                    for (var i = 0; i  { _addressText.Text = addressText; });
            }).Start();
        }

        public void OnLocationChanged(Location location)
        {
            _currentLocation = location;
            if (_currentLocation == null)
            {
                _locationText.Text = "Unable to determine your location.";
            }
            else
            {
                _locationText.Text = String.Format("{0},{1}", _currentLocation.Latitude, _currentLocation.Longitude);
            }
        }
    }
}

如何解决这些问题:

错误信息

1)

public class Activity1 : Activity, ILocationListener
{
}

共有1个答案

秦宏盛
2023-03-14

要使用“any()”的定义,必须具有“using system.linq”。

希望能有所帮助。

 类似资料:
  • 问题内容: 干杯,我正在尝试通过Android获取当前的GPS位置。我也遵循了这篇教程和Vogellas的文章。虽然没有用。使用LocationManager.NETWORK_PROVIDER时,无论我站在哪里,我总能得到51的纬度和9的经度。当使用LocationManager.GPS_PROVIDER时,我什么也没得到。 虽然使用GMaps时一切正常::S不知道为什么。如何像GMaps一样获取

  • 问题内容: 有没有一种方法可以使GPS一次访问,而不必使用不断检查位置更新的弯针? 在我的场景中,我感兴趣的只是查找当前坐标,而不是与GPS卫星的连续连接。有谁知道如何做到这一点?提前致谢。 问题答案: 首先检查最近知道的位置是否是最近的。如果没有,我相信您必须设置onLocationChanged侦听器,但是一旦获得第一个有效位置,就可以随时停止更新流。 加成

  • 您可以使用移动设备的 GPS 追踪 A370的户外训练的路线、速度和距离。需要在您手机上安装 Polar Flow 手机应用程式,并与 A370 配对使用配对,并允许使用手机的位置。 当您在训练下开始户外训练课时,带静态圆圈的 GPS 图标会在您的位置固定时显示,您可以开始追踪训练课。 您需要在训练期间保持您的移动设备。

  • 问题内容: 关于基本的Android编程,我还有另一个问题: 如何访问GPS以获取正在运行该应用程序的手机的当前位置?检索信息需要多长时间?在这种情况下,GPS可能会被禁用,如何再次启用/禁用它。 必须在andorid清单中授予哪些权限? 问候和感谢您的回答, 诗丹 问题答案: 一些答案: 访问:请参见LocationManager和LocationListener。 权限:android.per

  • 问题内容: 我正在尝试通过GPS功能获取用户的当前位置, 编写了一个实现的简单类 通过一个简单的动作,我正在访问这些经度和纬度值 但是它总是返回0.0作为结果。无法找出问题所在。 问题答案: 您必须在onCreate()返回之后才能触发您的位置更新回调。如果您将经纬度变量初始化为虚拟值,则可能会看到您正在打印这些值。 在onLocationChanged中添加一些日志记录,以便可以看到它已被触发,

  • 我有一个android应用程序,将跟踪用户的位置。它被设置为使用WiFi/网络位置服务,如果可能的话,否则使用GPS_PROVIDER服务。当有wifi连接时,它工作得很好,但当我设置只从GPS获取位置时,应用程序崩溃了。通过测试,我得到了行location=locationmanager.getlastknownlocation(locationmanager.gps_provider);实际上