我尝试了一种使用 BroadcastReceiver 来侦听的方法提供商_已更改 http://developer.android.com/reference/android/location/LocationManager.html#PROVIDERS_CHANGED_ACTION操作,但这仅告诉我何时打开/关闭位置设置。我想知道任何应用程序何时使用位置服务来获取位置。我不需要知道哪个应用程序正在执行此操作,而且我也不关心位置本身。我只想知道何时某些应用程序尝试获取位置以及何时停止这样做。这可能吗?
我不知道您是否真的需要通过广播接收器通知,但如果不是绝对需要,那么您可以使用GpsStatus.Listener http://developer.android.com/reference/android/location/GpsStatus.Listener.html :
以下是如何使用它:
mLocationManager.addGpsStatusListener(new GpsStatus.Listener(){
@Override
public void onGpsStatusChanged(int event) {
if(event==GpsStatus.GPS_EVENT_STARTED){
Log.d(TAG,"Gps Started");
}else if(event==GpsStatus.GPS_EVENT_STOPPED){
Log.d(TAG,"Gps Stopped");
}
}
});
如果您确实需要通过 BroadcastReceiver 接收此信息:只需将此代码包装在服务中并从那里发送事件即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)