OnNmeaMessageListener 不适用于三星 j7、android 6.0.1
Posted
技术标签:
【中文标题】OnNmeaMessageListener 不适用于三星 j7、android 6.0.1【英文标题】:OnNmeaMessageListener not working for samsung j7, android 6.0.1 【发布时间】:2021-08-08 23:47:42 【问题描述】:在三星 J7 上测试使用 OnNmeaMessageListener 的应用时,应用因此错误而中断
我真的不明白是什么问题,我已经在其他设备上进行了测试,并且该应用程序可以正常工作。
我正在测试的代码:
LM.addNmeaListener(new OnNmeaMessageListener()
@Override
public void onNmeaMessage(String nmea, long timestamp)
// do stuff
);
【问题讨论】:
【参考方案1】:好的,我为低于 24 的 SDK 版本找到了可能的解决方案
if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.N)
GpsStatus.NmeaListener nmeaListenerDeprecated = new GpsStatus.NmeaListener()
@Override
public void onNmeaReceived(long timestamp, String nmea)
processNmeaData(nmea, timestamp);
;
try
//noinspection JavaReflectionMemberAccess
Method addNmeaListener =
LocationManager.class.getMethod("addNmeaListener", GpsStatus.NmeaListener.class);
addNmeaListener.invoke(LM, nmeaListenerDeprecated);
catch (Exception exception)
// TODO
else
LM.addNmeaListener(new OnNmeaMessageListener()
@Override
public void onNmeaMessage(String nmea, long timestamp)
processNmeaData(nmea, timestamp);
);
通过该解决方案,我设法让 NMEA 为新旧设备工作。
【讨论】:
以上是关于OnNmeaMessageListener 不适用于三星 j7、android 6.0.1的主要内容,如果未能解决你的问题,请参考以下文章
为啥元类适用于类属性但@classmethod @property 不适用?
为啥 NSRegularExpression 不包含在适用于 Mac 应用程序的foundtion.framework 中,因为它适用于 iOS?