在启动/停止GPS(或位置服务)时接收通知(通过BroadcastReceiver)

Oma*_*eth 3 android location broadcastreceiver

我通过使用侦听PROVIDERS_CHANGED操作的BroadcastReceiver尝试了一种方法,但这只会告诉我何时打开/关闭位置设置.我想知道什么时候使用位置服务来获取任何应用程序的位置.我不需要知道哪个应用程序正在执行它,我不关心位置本身.我只想知道某个应用程序试图获取某个位置,以及何时停止这样做.这可能吗?

ben*_*n75 6

我不知道你是否真的需要通过广播接收器得到通知,但如果不是绝对需要,那么你可以使用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");
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

如果您确实需要通过BroadcastReceiver接收此信息:只需将此代码包装在服务中并从那里发送事件.