@RequiresApi(Build.VERSION_CODES.N)
@Override
protected void configureSensorSubscribeAndUnsubscribeBehaviors(FlowableEmitter<SensorRecord> subscriber) {
final GnssNavigationMessage.Callback callback = initializeGnssNavigationCallbackFor(subscriber);
startListeningGnssNavigationMessages(callback);
addUnsubscribeCallbackFor(subscriber, callback);
}
java类android.location.GnssNavigationMessage的实例源码
RawGPSNavigationGatherer.java 文件源码
项目:AndroidSensors
阅读 26
收藏 0
点赞 0
评论 0
RawGPSNavigationGatherer.java 文件源码
项目:AndroidSensors
阅读 27
收藏 0
点赞 0
评论 0
@RequiresApi(Build.VERSION_CODES.N)
private GnssNavigationMessage.Callback initializeGnssNavigationCallbackFor(final FlowableEmitter<SensorRecord> subscriber) {
return new GnssNavigationMessage.Callback() {
@Override
public void onGnssNavigationMessageReceived(GnssNavigationMessage event) {
subscriber.onNext(new RawGPSNavigationRecord(event));
}
};
}
RawGPSNavigationGatherer.java 文件源码
项目:AndroidSensors
阅读 31
收藏 0
点赞 0
评论 0
@RequiresApi(Build.VERSION_CODES.N)
private void startListeningGnssNavigationMessages(final GnssNavigationMessage.Callback callback) {
// This is needed because location manager location updates need a looper
Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(CompletableEmitter e) throws Exception {
checkRegistrationSuccess(locationManager.registerGnssNavigationMessageCallback(callback));
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe();
}
RawGPSNavigationGatherer.java 文件源码
项目:AndroidSensors
阅读 28
收藏 0
点赞 0
评论 0
@RequiresApi(Build.VERSION_CODES.N)
private void addUnsubscribeCallbackFor(FlowableEmitter<SensorRecord> subscriber,
final GnssNavigationMessage.Callback callback) {
subscriber.setCancellable(new Cancellable() {
@Override
public void cancel() throws Exception {
locationManager.unregisterGnssNavigationMessageCallback(callback);
}
});
}
GnssContainer.java 文件源码
项目:gps-measurement-tools
阅读 30
收藏 0
点赞 0
评论 0
@Override
public void onGnssNavigationMessageReceived(GnssNavigationMessage event) {
if (mLogNavigationMessages) {
for (GnssListener logger : mLoggers) {
logger.onGnssNavigationMessageReceived(event);
}
}
}
FileLogger.java 文件源码
项目:gps-measurement-tools
阅读 26
收藏 0
点赞 0
评论 0
@Override
public void onGnssNavigationMessageReceived(GnssNavigationMessage navigationMessage) {
synchronized (mFileLock) {
if (mFileWriter == null) {
return;
}
StringBuilder builder = new StringBuilder("Nav");
builder.append(RECORD_DELIMITER);
builder.append(navigationMessage.getSvid());
builder.append(RECORD_DELIMITER);
builder.append(navigationMessage.getType());
builder.append(RECORD_DELIMITER);
int status = navigationMessage.getStatus();
builder.append(status);
builder.append(RECORD_DELIMITER);
builder.append(navigationMessage.getMessageId());
builder.append(RECORD_DELIMITER);
builder.append(navigationMessage.getSubmessageId());
byte[] data = navigationMessage.getData();
for (byte word : data) {
builder.append(RECORD_DELIMITER);
builder.append(word);
}
try {
mFileWriter.write(builder.toString());
mFileWriter.newLine();
} catch (IOException e) {
logException(ERROR_WRITING_FILE, e);
}
}
}
UiLogger.java 文件源码
项目:gps-measurement-tools
阅读 26
收藏 0
点赞 0
评论 0
private String getGnssNavigationMessageStatus(int status) {
switch (status) {
case GnssNavigationMessage.STATUS_UNKNOWN:
return "Status Unknown";
case GnssNavigationMessage.STATUS_PARITY_PASSED:
return "READY";
case GnssNavigationMessage.STATUS_PARITY_REBUILT:
return "Status Parity Rebuilt";
default:
return "<Unknown>";
}
}
PseudorangePositionVelocityFromRealTimeEvents.java 文件源码
项目:gps-measurement-tools
阅读 24
收藏 0
点赞 0
评论 0
/**
* Parses a string array containing an updates to the navigation message and return the most
* recent {@link GpsNavMessageProto}.
*/
public void parseHwNavigationMessageUpdates(GnssNavigationMessage navigationMessage) {
byte messagePrn = (byte) navigationMessage.getSvid();
byte messageType = (byte) (navigationMessage.getType() >> 8);
int subMessageId = navigationMessage.getSubmessageId();
byte[] messageRawData = navigationMessage.getData();
// parse only GPS navigation messages for now
if (messageType == 1) {
mGpsNavigationMessageStore.onNavMessageReported(
messagePrn, messageType, (short) subMessageId, messageRawData);
mHardwareGpsNavMessageProto = mGpsNavigationMessageStore.createDecodedNavMessage();
}
}
RawGPSNavigationRecord.java 文件源码
项目:AndroidSensors
阅读 27
收藏 0
点赞 0
评论 0
@RequiresApi(api = Build.VERSION_CODES.N)
public RawGPSNavigationRecord(GnssNavigationMessage navigationMessage) {
super(new RecordInfo(System.currentTimeMillis()));
this.message = navigationMessage.toString().replace('\n', ',');
}
AgnssUiLogger.java 文件源码
项目:gps-measurement-tools
阅读 26
收藏 0
点赞 0
评论 0
@Override
public void onGnssNavigationMessageReceived(GnssNavigationMessage event) {}
GnssListener.java 文件源码
项目:gps-measurement-tools
阅读 33
收藏 0
点赞 0
评论 0
/** @see GnssNavigationMessage.Callback# onGnssNavigationMessageReceived(GnssNavigationMessage) */
void onGnssNavigationMessageReceived(GnssNavigationMessage event);
UiLogger.java 文件源码
项目:gps-measurement-tools
阅读 29
收藏 0
点赞 0
评论 0
@Override
public void onGnssNavigationMessageReceived(GnssNavigationMessage event) {
logNavigationMessageEvent("onGnssNavigationMessageReceived: " + event);
}
RealTimePositionVelocityCalculator.java 文件源码
项目:gps-measurement-tools
阅读 25
收藏 0
点赞 0
评论 0
@Override
public void onGnssNavigationMessageReceived(GnssNavigationMessage event) {
if (event.getType() == GnssNavigationMessage.TYPE_GPS_L1CA) {
mPseudorangePositionVelocityFromRealTimeEvents.parseHwNavigationMessageUpdates(event);
}
}