【问题标题】:OnNmeaMessageListener not working for samsung j7, android 6.0.1OnNmeaMessageListener 不适用于三星 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
                } 
    });

【问题讨论】:

    标签: android android-gps


    【解决方案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 为新旧设备工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多