kopia lustrzana https://github.com/ge0rg/aprsdroid
Kenwood NMEA: do not crash app on API<r5
rodzic
d80055188f
commit
c102c924aa
|
@ -6,20 +6,24 @@ import _root_.android.util.Log
|
|||
|
||||
import _root_.java.io.{InputStream, OutputStream, OutputStreamWriter, PrintWriter}
|
||||
|
||||
class KenwoodTnc(service : AprsService, prefs : PrefsWrapper) extends BluetoothTnc(service, prefs)
|
||||
with GpsStatus.NmeaListener {
|
||||
class KenwoodTnc(service : AprsService, prefs : PrefsWrapper) extends BluetoothTnc(service, prefs) {
|
||||
override val TAG = "APRSdroid.KenwoodTnc"
|
||||
|
||||
val locMan = service.getSystemService(Context.LOCATION_SERVICE).asInstanceOf[LocationManager]
|
||||
var output : OutputStreamWriter = null
|
||||
|
||||
locMan.addNmeaListener(this)
|
||||
var listener : NmeaListener = null
|
||||
if (android.os.Build.VERSION.SDK_INT >= 5) {
|
||||
listener = new NmeaListener()
|
||||
locMan.addNmeaListener(listener)
|
||||
}
|
||||
|
||||
override def createTncProto(is : InputStream, os : OutputStream) = {
|
||||
output = new OutputStreamWriter(os)
|
||||
new KenwoodProto(is)
|
||||
}
|
||||
|
||||
class NmeaListener extends GpsStatus.NmeaListener() {
|
||||
def onNmeaReceived(timestamp : Long, nmea : String) {
|
||||
if (output != null && (nmea.startsWith("$GPGGA") || nmea.startsWith("$GPRMC"))) {
|
||||
Log.d(TAG, "NMEA >>> " + nmea)
|
||||
|
@ -32,10 +36,11 @@ class KenwoodTnc(service : AprsService, prefs : PrefsWrapper) extends BluetoothT
|
|||
}
|
||||
} else
|
||||
Log.d(TAG, "NMEA --- " + nmea)
|
||||
}
|
||||
}}
|
||||
|
||||
override def stop() {
|
||||
locMan.removeNmeaListener(this)
|
||||
if (android.os.Build.VERSION.SDK_INT >= 5)
|
||||
locMan.removeNmeaListener(listener)
|
||||
super.stop()
|
||||
}
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue