1

我正在location使用各种配置测试我的应用程序的一部分。在AirPlane模式下,我没有收到任何来自Android 2.2 上ILocationListener的以下消息的消息,无论好坏。LocationManager在这种情况下,bestProvider 是“network”。

如何确定是否根本无法获取位置以便通知用户?当有网络或 GPS 时,一切正常。

我使用的代码(Android C# 的 Mono)是:

            var cr = new Criteria ();
            cr.Accuracy = Accuracy.Coarse;
            cr.PowerRequirement = Power.Low;
            cr.AltitudeRequired = false;
            cr.BearingRequired = false;
            cr.SpeedRequired = false;
            cr.CostAllowed = true;
            string serviceString = Context.LocationService;
            locationManager = (LocationManager)GetSystemService (serviceString);
            var bestProvider = locationManager.GetBestProvider (cr, false);
            locationManager.RequestLocationUpdates (bestProvider, 5000, 500f, this);
4

2 回答 2

2

就像您的位置侦听器一样,您可以在或this中看到状态。阅读此API以获取更多信息,每个状态的含义onProviderEnabled (String provider)onProviderDisabled (String provider)onStatusChanged (String provider, int status, Bundle extras)

于 2012-05-30T15:18:09.880 回答
0

您不能在 AirPlane 模式下使用任何类型的通信,如 GPS、GPRS。飞行模式是大多数手机、智能手机和其他电子设备上可用的一种设置,当使用它时,会暂停设备的许多信号传输功能——从而禁用设备拨打或接听电话或短信的能力——同时仍允许使用其他不需要信号传输的功能(例如,游戏、内置摄像头、MP3 播放器)。

于 2012-05-30T15:23:51.040 回答