我正在使用各种配置测试应用的location
部分。在AirPlane
模式下,我不会从Android 2.2上的以下ILocationListener
向LocationManager
发送任何消息,无论好坏。在这种情况下,bestProvider是“网络”。
如何确定是否无法获取位置以便我可以通知用户?当有网络或GPS时,一切正常。
我使用的代码( Mono for Android C#)是:
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);
答案 0 :(得分:1)
this
是您的位置监听器,您可以在onProviderEnabled (String provider)
,onProviderDisabled (String provider)
或onStatusChanged (String provider, int status, Bundle extras)
中查看状态。阅读此API以获取更多信息,每个州的含义
答案 1 :(得分:0)
在AirPlane模式下,您无法使用GPS,GPRS等任何类型的通信。飞机模式是大多数手机,智能手机和其他电子设备上可用的设置,当使用时,它会暂停设备的许多信号传输功能 - 从而禁用设备发出或接收呼叫或短信的能力 - 同时仍允许使用其他设备不需要信号传输的功能(例如,游戏,内置摄像头,MP3播放器)。