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 不适用?

JavaScript 箭头函数:适用与不适用场景

WEKA:如何区分“缺失”和“不适用”的数字数据?

为啥 NSRegularExpression 不包含在适用于 Mac 应用程序的foundtion.framework 中,因为它适用于 iOS?

Nginx websocket 将适用于单个响应或根本不适用,似乎是随机的

mongodb适用和不适用的应用场景