我正在尝试检测手机中的GPS是否正在使用。到目前为止,GpsStatus监听器已经适用于我的Android设备。在SDK 24的情况下,我一直在使用GnssStatus.callback。我已检查回调是否已成功注册。但是,当Google地图使用GPS时,我仍然没有收到任何通知。我的回调函数如下
public final GnssStatus.Callback gnssStatusListener = new GnssStatus.Callback() {
@Override
public void onStarted() {
Log.d(APP_NAME,"GPS started");
}
@Override
public void onStopped() {
Log.d(APP_NAME,"GPS stopped");
}
@Override
public void onSatelliteStatusChanged(GnssStatus status) {
Log.d(APP_NAME,"GPS started"+status.toString());
}
};
回调函数在权限检查块中注册。
if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION ) == PackageManager.PERMISSION_GRANTED){
if(Build.VERSION.SDK_INT==24){
manager.registerGnssStatusCallback(gnssStatusListener);
}
Log.d(APP_NAME, "ACCESS_FINE_LOCATION premission granted");
}
我不太确定发生了什么。非常感谢你的帮助。