我通过使用侦听PROVIDERS_CHANGED操作的BroadcastReceiver尝试了一种方法,但这只能告诉我何时打开/关闭位置设置.我想知道什么时候使用位置服务来获取任何应用程序的位置.我不需要知道哪个应用程序正在执行它,我不关心位置本身.我只想知道某个应用程序试图获取某个位置,以及何时停止这样做.这可能吗?
解决方法:
我不知道你是否真的需要通过广播接收器得到通知,但如果不是绝对需要,那么你可以使用GpsStatus.Listener:
以下是如何使用它:
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接收此信息:只需将此代码包装在服务中并从那里发送事件.
标签:android,location,broadcastreceiver
来源: https://codeday.me/bug/20190717/1491081.html