GithubHelp home page GithubHelp logo

meshtastic / meshtastic-android Goto Github PK

View Code? Open in Web Editor NEW
580.0 39.0 174.0 7.46 MB

Android application for Meshtastic

Home Page: https://meshtastic.org

License: GNU General Public License v3.0

Kotlin 98.92% AIDL 0.77% Java 0.30%
gps lora android meshtastic

meshtastic-android's Introduction

Meshtastic-Android

GitHub all releases Android CI Crowdin CLA assistant Fiscal Contributors Vercel

This is a tool for using Android with open-source mesh radios. For more information see our webpage: meshtastic.org. If you are looking for the the device side code, see here.

This project is currently beta testing, if you have questions or feedback please Join our discussion forum. We would love to hear from you!

Get it on F-Droid Get it on IzzyOnDroid Download at https://play.google.com/store/apps/details?id=com.geeksville.mesh]

If you want to join the Play Store testing program go to this URL and opt-in to become a tester. If you encounter any problems or have questions, post in the forum and we'll help.

However, if you must use 'raw' APKs you can get them from our github releases. This is not recommended because if you manually install an APK it will not automatically update.

Translations

You can help translate the app into your native language using Crowdin.

Build instructions

If you would like to develop this application we'd love your help! These build instructions are brief and should be improved, please send a PR if you can.

  • Use Android Studio to build/debug
  • Use "git submodule update --init --recursive" to pull in the various submodules we depend on
  • There are a few config files which you'll need to copy from templates included in the project. Run the following commands to do so:
rm ./app/google-services.json
cp ./app/google-services-example.json ./app/google-services.json
  • Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone or the emulator. Note: The emulators don't support bluetooth, so some features can not be used in that environment.

Analytics setup

  • analytics are included but can be disabled by the user on the settings screen

  • on dev devices

adb shell setprop debug.firebase.analytics.app com.geeksville.mesh
adb shell setprop log.tag.FirebaseCrashlytics DEBUG

for verbose logging:

adb shell setprop log.tag.FA VERBOSE

Copyright 2024, Meshtastic LLC. GPL-3.0 license

meshtastic-android's People

Contributors

andrekir avatar daviscodesbugs avatar dayledrinkwater avatar douile avatar erikthev-king avatar geeksville avatar gkelly avatar hpsaturn avatar jp-bennett avatar kenvanhoeylandt avatar legendgroupv2 avatar lgoix avatar majbthrd avatar mc-hamster avatar mcumings avatar mertrois avatar mkinney avatar paulmandal avatar prokrypt avatar pwrxpsycho avatar rcarteraz avatar renovate[bot] avatar rkuksa avatar sachaw avatar slavino avatar smack815 avatar thebentern avatar tuxphone avatar vfurman-gh avatar wkawecki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meshtastic-android's Issues

google crash report with the new channel GUI

Hi lgoix,

I just received the following crash report. (Also, if you want - tell me your google friendly username and I'll add you to the google console ;-) ).

If you don't have time to look at it no worries - I'll look into it in the next couple o days.

com.geeksville.mesh_issue_1d289ec365695d4464c0ed4c8c9bb3f9_crash_session_5EE7E3E0038600017DAD94DF32C6F831_DNE_0_v2.log

Fatal Exception: java.lang.IllegalArgumentException: Can't get the number of an unknown enum value.
       at com.geeksville.mesh.MeshProtos$ChannelSettings$ModemConfig.getNumber(MeshProtos.java:5811)
       at com.geeksville.mesh.MeshProtos$ChannelSettings.setModemConfig(MeshProtos.java:5950)
       at com.geeksville.mesh.MeshProtos$ChannelSettings.access$10400(MeshProtos.java:5725)
       at com.geeksville.mesh.MeshProtos$ChannelSettings$Builder.setModemConfig(MeshProtos.java:6258)
       at com.geeksville.mesh.ui.ChannelFragment$onViewCreated$2$2.onClick(ChannelFragment.java:171)
       at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6739)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:859)

position on mapview does not update

I took a longer walk and noticed that the position on the mapview does not update. It shows the position where the app was started. Restarting the app will update the position.
At the time of testing there was only the own device in the net. Other devices were out of range.
I did push 'report bug' button in the app.
Running app 0.5.7 and device 0.4.3 (TTGO T-BEAM1.0)
Phone is a Oneplus 5T

values-sk/strings.xml [work in progress]

<resources>
    <string name="app_name" translatable="false">Meshtastic</string>
    <string name="action_settings">Nastavenia</string>
    <string name="channel_name">Názov kanálu</string>
    <string name="channel_options">Nastavenia kanálu</string>
    <string name="share_button">Tlačitko pre zdieľanie</string>
    <string name="qr_code">QR kód</string>
    <string name="unset">Zrušiť nastavenie</string>
    <string name="connection_status">Stav pripojenia</string>
    <string name="application_icon">Ikona aplikácie</string>
    <string name="unknown_username">Neznáme užívateľské meno</string>
    <string name="user_avatar">Užívateľov avatar</string>
    <string name="sample_distance" translatable="false">2.13 km</string>
    <string name="sample_message">Ahoj, našiel som cache-ku, je to kúsok od mňa vedľa veľkého tigra. Trochu ma to desí.</string>
    <string name="some_username" translatable="false">SKH</string>
    <string name="send_text">Odoslať text</string>
    <string name="warning_not_paired">You haven\'t yet paired a Meshtastic compatible radio with this phone. Please pair a device and set your username.\n\nThis open-source application is in alpha-testing, if you find problems please post on our forum: meshtastic.discourse.group.\n\nFor more information see our web page - www.meshtastic.org.</string>
    <string name="username_unset">Užívateľské meno vymazané</string>
    <string name="your_name">Vaše meno</string>
    <string name="analytics_okay">Anonymné hlásenia o používaní aplikácie a jej chybách.</string>
    <string name="looking_for_meshtastic_devices">Looking for Meshtastic devices…</string>
    <string name="test__devname1" translatable="false">Meshtastic_ac23</string>
    <string name="test_devname2" translatable="false">Meshtastic_1267</string>
    <string name="requires_bluetooth">Táto aplikácia vyžaduje prístup k Bluetooth. Prosím povoľte jej prístup v nastaveniach telefónu.</string>
    <string name="error_bluetooth">Chyba - táto aplikácia potrebuje bluetooth.</string>
    <string name="starting_pairing">Spúšťam párovanie</string>
    <string name="pairing_failed">Párovanie zlyhalo</string>
    <string name="url_for_join">URL pre pripojenie sa do Meshtastic MESH siete</string>
    <string name="accept">Prijať</string>
    <string name="cancel">Odmietnuť</string>
    <string name="change_channel">Zmeniť kanál</string>
    <string name="are_you_sure_channel">Ste si istý, že chcete zmeniť kanál? Všetka komunikácia s ostatnými vysielačmi prestane fungovať až do momentu distribúcie rovnakého nastavenia na ostatné vysielače.</string>
    <string name="new_channel_rcvd">Obdržaná nová URL kanálu.</string>
    <string name="do_you_want_switch">Chcete sa prpnúť na kanál \'%s\' ?</string>
    <string name="map_not_allowed">You have analytics disabled. Unfortunately our map provider (mapbox) requires analytics to be allowed for their \'free\' plan. So we have turned off the map view.\n\n
        If you would like to see the map, you\'ll need to turn on analytics in the Settings pane (also, for the time being you might need to force restart the application).\n\n
        If you are interested in us paying for mapbox (or switching to a different map provider), please post in meshtastic.discourse.group</string>
    <string name="permission_missing">A required permission is missing, Meshtastic won\'t be able to work properly.  Please enable in application settings.</string>
    <string name="radio_sleeping">Vysielač je uspatý, nepodarilo sa zmeniť kanál</string>
    <string name="report_bug">Nahlásenie chyby</string>
    <string name="report_a_bug">Nahlásiť chybu</string>
    <string name="report_bug_text">Ste si istý, že chcete nahlásiť chybu? Po odoslaní prosím pridajte správu do meshtastic.discourse.group aby sme vedeli priradiť Vami nahlásenú chybu ku Vášmu príspevku.</string>
    <string name="report">Odoslať chybové hlásenie</string>
    <string name="select_radio">Vyberte vysielač</string>
    <string name="current_pair">Ste napárovaný s vysielačom %s</string>
    <string name="not_paired_yet">Zatiaľ ste nenapárovali žiaden vysielač.</string>
    <string name="change_radio">Zmeniť vysielač</string>
    <string name="please_pair">Prosím pripojte zariadenie v nastaveniach systému Android.</string>
    <string name="pairing_completed">Párovanie ukončené, štartujem službu</string>
    <string name="pairing_failed_try_again">Párovanie zlyhalo, prosím skúste to znovu.</string>
    <string name="location_disabled">Prístup k polohe zariadenia nie je povolený, nodokážem poskytnúť polohu zariadenia MESH sieti.</string>
    <string name="share">Zdieľať</string>
    <string name="disconnected">Odpojené</string>
    <string name="device_sleeping">Zariadenie spí</string>
    <string name="connected_count">Pripojený: %s z %s je online</string>
    <string name="list_of_nodes">Zoznam vysielačov v sieti</string>
    <string name="update_firmware">Aktualizácia firmvéru</string>
    <string name="connected_to">Pripojené k vysielaču (%s)</string>
    <string name="not_connected">Nepripojené, zvoľte si vysielač</string>
    <string name="connected_sleeping">Pripojené k uspatému vysielaču.</string>
    <string name="update_to">Aktualizovať na %s</string>
    <string name="app_too_old">Aplikácia je príliš stará</string>
    <string name="must_update">Musíte aktualizovať aplikáciu na Google Play store (alebo z Github). Je príliš stará pre komunikáciu s touto verziou firmvéru vysielača.</string>
    <string name="none">Žiaden (zakázať)</string>
    <string name="rate_dialog_no_en">Nie, ďakujem</string>
    <string name="rate_dialog_cancel_en">Pripomenúť neskôr</string>
    <string name="rate_dialog_ok_en">Ohodnotiť teraz</string>
    <string name="rate_dialog_title_en">Ohodnoťte Meshtastic</string>
</resources>

reconnect bug seen on BV5500Pro

0.5.7

Non-fatal Exception: java.lang.AssertionError: Assertion failed
       at com.geeksville.android.Logging$DefaultImpls.logAssert(Logging.java:51)
       at com.geeksville.mesh.service.SafeBluetooth.logAssert(SafeBluetooth.java:50)
       at com.geeksville.mesh.service.SafeBluetooth.asyncConnect(SafeBluetooth.java:421)
       at com.geeksville.mesh.service.RadioInterfaceService.startConnect(RadioInterfaceService.java:525)
       at com.geeksville.mesh.service.RadioInterfaceService.retryDueToException(RadioInterfaceService.java:408)
       at com.geeksville.mesh.service.RadioInterfaceService$retryDueToException$1.invokeSuspend(RadioInterfaceService.java:11)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:56)
       at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:571)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.java:738)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:678)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java:665)

com.geeksville.mesh_issue_2a12c7f9d75db78e3f3f9648aff2177a_error_session_5EA52BD503B000014811AF414342D51E_DNE_0_v2.log

Feature: Resend Button

Right now if your message is lost or not confirmed - you have to type it again. No copy and paste in the message box or another way for easy resending of your message.

So i would like to have an option to show the last message(s) and resend them via Enter.
Perhaps an "Up Arrow" icon at the right side of the text box? Pressing it would show the last line or perhaps even older (own) messages.

Message notification but no message showing

When I send a message from one phone, on the other phone with the screen off I get a notification saying message received, however when I unlock the phone the message isn't displayed in the message window. Also on the notification screen the serial number of the device the message was received from is shown. Is it possible to show the users name instead? Screenshot

the first time we attempt to connect after pairing, exception:

2020-03-15 16:22:08.488 7510-7622/com.geeksville.mesh D/CrashJobIntentService: onHandleWork
2020-03-15 16:22:08.489 7510-7622/com.geeksville.mesh W/CrashJobIntentService: Root directory doesn't exist
2020-03-15 16:22:08.629 7510-7529/com.geeksville.mesh D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=10 device=24:6F:28:96:C9:2A
2020-03-15 16:22:08.630 7510-7529/com.geeksville.mesh I/com.geeksville.mesh.service.SafeBluetooth: new bluetooth connection state 2, status 0
2020-03-15 16:22:08.630 7510-7529/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work connect is completed, resuming status=0, res=kotlin.Unit
2020-03-15 16:22:08.631 7510-7529/com.geeksville.mesh I/com.geeksville.mesh.service.RadioInterfaceService: Connected to radio!
2020-03-15 16:22:08.631 7510-7529/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Enqueuing work: discover
2020-03-15 16:22:08.631 7510-7529/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation: Starting work: discover
2020-03-15 16:22:08.631 7510-7529/com.geeksville.mesh D/BluetoothGatt: discoverServices() - device: 24:6F:28:96:C9:2A
2020-03-15 16:22:09.530 7510-7733/com.geeksville.mesh D/BluetoothGatt: onConnectionUpdated() - Device=24:6F:28:96:C9:2A interval=6 latency=0 timeout=500 status=0
2020-03-15 16:22:10.128 7510-7733/com.geeksville.mesh D/BluetoothGatt: onSearchComplete() = Device=24:6F:28:96:C9:2A Status=0
2020-03-15 16:22:10.128 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work discover is completed, resuming status=0, res=kotlin.Unit
2020-03-15 16:22:10.128 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.RadioInterfaceService: Discovered services!
2020-03-15 16:22:10.129 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Enqueuing work: reqMtu
2020-03-15 16:22:10.129 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation: Starting work: reqMtu
2020-03-15 16:22:10.129 7510-7733/com.geeksville.mesh D/BluetoothGatt: configureMTU() - device: 24:6F:28:96:C9:2A mtu: 512
2020-03-15 16:22:10.146 7510-7733/com.geeksville.mesh D/BluetoothGatt: onConfigureMTU() - Device=24:6F:28:96:C9:2A mtu=512 status=0
2020-03-15 16:22:10.146 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work reqMtu is completed, resuming status=0, res=kotlin.Unit
2020-03-15 16:22:10.147 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.RadioInterfaceService: requested MTU result=Success(kotlin.Unit)
2020-03-15 16:22:10.147 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: starting setNotify(ed9da18c-a800-4f66-a670-aa7547e34453, true)
2020-03-15 16:22:10.147 7510-7733/com.geeksville.mesh D/BluetoothGatt: setCharacteristicNotification() - uuid: ed9da18c-a800-4f66-a670-aa7547e34453 enable: true
2020-03-15 16:22:10.148 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Enqueuing work: writeD
2020-03-15 16:22:10.149 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation: Starting work: writeD
2020-03-15 16:22:10.149 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.RadioInterfaceService: Broadcasting connection=true
2020-03-15 16:22:10.151 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Enqueuing work: readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
2020-03-15 16:22:10.153 7510-7510/com.geeksville.mesh D/com.geeksville.mesh.service.MeshService: Received broadcast com.geeksville.mesh.CONNECT_CHANGED
2020-03-15 16:22:10.154 7510-7510/com.geeksville.mesh D/com.geeksville.mesh.service.MeshService: onConnectionChanged connected=true
2020-03-15 16:22:10.155 7510-7510/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Enqueuing work: readC ea9f3f82-8dc4-4733-9452-1f6da28892a2
2020-03-15 16:22:10.168 7510-7530/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation: Starting work: readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
2020-03-15 16:22:10.169 7510-7530/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work writeD is completed, resuming status=0, res=android.bluetooth.BluetoothGattDescriptor@9a13b8a
2020-03-15 16:22:10.169 7510-7530/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: Notify enable=true completed
2020-03-15 16:22:10.248 7510-7530/com.geeksville.mesh D/BluetoothGatt: onConnectionUpdated() - Device=24:6F:28:96:C9:2A interval=36 latency=0 timeout=500 status=0
2020-03-15 16:22:30.291 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation: Starting work: readC ea9f3f82-8dc4-4733-9452-1f6da28892a2
2020-03-15 16:22:30.292 7510-7733/com.geeksville.mesh D/com.geeksville.mesh.service.SafeBluetooth: work readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5 is completed, resuming status=137, res=android.bluetooth.BluetoothGattCharacteristic@8695fb
2020-03-15 16:22:30.293 7510-7733/com.geeksville.mesh E/com.geeksville.util.Exceptions: exceptionReporter Uncaught Exception
    java.io.IOException: Bluetooth status=137 while doing readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
        at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(SafeBluetooth.kt:326)
        at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(Unknown Source:0)
        at com.geeksville.util.ExceptionsKt.exceptionReporter(Exceptions.kt:31)
        at com.geeksville.mesh.service.SafeBluetooth.completeWork(SafeBluetooth.kt:311)
        at com.geeksville.mesh.service.SafeBluetooth.access$completeWork$2(Unknown Source:0)
        at com.geeksville.mesh.service.SafeBluetooth$gattCallback$1.onCharacteristicRead(SafeBluetooth.kt:206)
        at android.bluetooth.BluetoothGatt$1$6.run(BluetoothGatt.java:394)
        at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780)
        at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41)
        at android.bluetooth.BluetoothGatt$1.onCharacteristicRead(BluetoothGatt.java:388)
        at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:246)
        at android.os.Binder.execTransactInternal(Binder.java:1021)
        at android.os.Binder.execTransact(Binder.java:994)
2020-03-15 16:22:40.156 7510-7510/com.geeksville.mesh E/toRemoteExceptions: Uncaught exception, returning to remote client
    java.lang.Exception: SyncContinuation timeout
        at com.geeksville.concurrent.SyncContinuation.await(SyncContinuation.kt:49)
        at com.geeksville.mesh.service.SafeBluetooth.makeSync(SafeBluetooth.kt:349)
        at com.geeksville.mesh.service.SafeBluetooth.readCharacteristic(SafeBluetooth.kt:410)
        at com.geeksville.mesh.service.RadioInterfaceService$doRead$1.invoke(RadioInterfaceService.kt:418)
        at com.geeksville.mesh.service.RadioInterfaceService$doRead$1.invoke(Unknown Source:0)
        at com.geeksville.util.ExceptionsKt.toRemoteExceptions(Exceptions.kt:41)
        at com.geeksville.mesh.service.RadioInterfaceService.doRead(RadioInterfaceService.kt:411)
        at com.geeksville.mesh.service.RadioInterfaceService.access$doRead$3(Unknown Source:0)
        at com.geeksville.mesh.service.RadioInterfaceService$binder$1.readMyNode(RadioInterfaceService.kt:437)
        at com.geeksville.mesh.service.MeshService.reinitFromRadio(MeshService.kt:610)
        at com.geeksville.mesh.service.MeshService.onConnectionChanged(MeshService.kt:693)
        at com.geeksville.mesh.service.MeshService.access$onConnectionChanged$5(Unknown Source:0)
        at com.geeksville.mesh.service.MeshService$radioInterfaceReceiver$1$onReceive$1.invoke(MeshService.kt:744)
        at com.geeksville.mesh.service.MeshService$radioInterfaceReceiver$1$onReceive$1.invoke(Unknown Source:0)
        at com.geeksville.util.ExceptionsKt.exceptionReporter(Exceptions.kt:31)
        at com.geeksville.mesh.service.MeshService$radioInterfaceReceiver$1.onReceive(MeshService.kt:738)
        at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1550)
        at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2020-03-15 16:22:40.156 7510-7510/com.geeksville.mesh W/com.geeksville.mesh.service.MeshService: Abandoning reconnect attempt, due to errors during init: SyncContinuation timeout

autobug analysis TBD

@vaderj sez:

I have uninstalled and reinstalled the app multiple times (Android app v0.6.4) on my HTC 10 (Android 7.0, no SIM, Wifi only) I do not have this problem on my HTC U12+ I hit the Report Bug associated with device Meshtastic_db6c Once in the app and the app claims to be paired, nothing really happens and at no matter where I touch any of the screens, nothing really happens edit So from my HTC 10, the cloud icon in the top-right corner has a cross through it, though it is connected to wifi whic…

I'll pull the logs from google shortly and update this bug.

LG v20 unable to connect to radio

I may have hit the report bug button a couple of times with this one as I wanted to make sure debugging info was there. Was attempting to connect to heltec *6e:84 from my LG v20, which also has a crash or two (hope that helps in the ADB logs that are attached). log2.txt Let me know if any more logs are required for better insight.

Also, with 0.4.3, I noticed my radios reset fairly often (white light goes solid) and then starts pinging like normal. My other phones (LG v20, LG rebel, Motorola g7) were able to connect to each of their radios and send/receive pretty well. I'm now using 4 heltec radios and I plan on adding another two that can go outside in waterproof boxes powered by solar.

Thanks and keep up the great work!

show app version somewhere in the app

I was running an older version of the app that I only found out when I went to the play store and saw an "update" button. Could we show the current app version under "Settings"?

Instead of signal integration perhaps use riot.im

Idea from @samuk.

Ooh - I hadn't heard of riot thanks! In fact this project started with this post to the Signal forum: https://community.signalusers.org/t/i-want-to-add-cheap-wireless-mesh-radios-an-early-proposal-feedback-requested/11334

And I did an early proof of concept with a hacked up version of Signal: https://github.com/geeksville/Meshtastic-Signal-Android/blob/master/KH-notes.md

So when we get a little farther (3ish wks?) and the time for the 'real' Signal integration perhaps riot might be a better choice. We'll need to look around, opening this issue to track.

native crash in mapbox

05-24 09:59:55.295 19258 19258 D com.geeksville.mesh.ui.MapFragment: Showing on map: NodeInfo(num=56, user=MeshUser(id=...f38, longName=...man, shortName=...bm), position=Position(lat=...807, lon=...652, alt=...70, time=1590339516))
05-24 09:59:55.297 19258 19258 D com.geeksville.mesh.ui.MapFragment: Showing on map: NodeInfo(num=180, user=MeshUser(id=...0b4, longName=...bob, shortName=...b), position=Position(lat=...316, lon=...999, alt=...198, time=1590339059))
05-24 09:59:55.298 19258 19258 D com.geeksville.mesh.ui.MapFragment: Showing on map: NodeInfo(num=152, user=MeshUser(id=...098, longName=...098, shortName=...?98), position=Position(lat=...995, lon=...325, alt=...121, time=1590338725))
05-24 09:59:55.329   940  1150 I CHRE    : @ 771755.479: [AR_CHRE] Received audio data event. Ar mode = 2
05-24 09:59:55.330 19258 19258 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 19258 (geeksville.mesh), pid 19258 (geeksville.mesh)
05-24 09:59:55.340  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.340  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.392  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.392  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.411 19937 19937 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
05-24 09:59:55.414  1014  1014 I /system/bin/tombstoned: received crash request for pid 19258
05-24 09:59:55.414   940  1150 I CHRE    : @ 771755.565: [AR_CHRE] audiofusion: Classification(4s-multimodal-model) : Other = 0.997004, Car = 0.002995
05-24 09:59:55.416 19937 19937 I crash_dump64: performing dump of process 19258 (target tid = 19258)
05-24 09:59:55.424 19937 19937 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-24 09:59:55.424 19937 19937 F DEBUG   : Build fingerprint: 'google/crosshatch/crosshatch:10/QQ2A.200501.001.B2/6352890:user/release-keys'
05-24 09:59:55.424 19937 19937 F DEBUG   : Revision: 'MP1.0'
05-24 09:59:55.424 19937 19937 F DEBUG   : ABI: 'arm64'
05-24 09:59:55.430 19937 19937 F DEBUG   : Timestamp: 2020-05-24 09:59:55-0700
05-24 09:59:55.430 19937 19937 F DEBUG   : pid: 19258, tid: 19258, name: geeksville.mesh  >>> com.geeksville.mesh <<<
05-24 09:59:55.430 19937 19937 F DEBUG   : uid: 10434
05-24 09:59:55.430 19937 19937 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
05-24 09:59:55.430 19937 19937 F DEBUG   : Cause: null pointer dereference
05-24 09:59:55.430 19937 19937 F DEBUG   :     x0  00000076b034cbe0  x1  0000007fc67bc860  x2  0000000000000000  x3  000000771b0cc076
05-24 09:59:55.430 19937 19937 F DEBUG   :     x4  0000007fc67bc848  x5  000000000000004a  x6  02ff2f4900ff5528  x7  7f7f7f7f7f7f7f7f
05-24 09:59:55.430 19937 19937 F DEBUG   :     x8  e3527c8b4c017715  x9  e3527c8b4c017715  x10 0000000000430000  x11 000000000000001a
05-24 09:59:55.430 19937 19937 F DEBUG   :     x12 0000007fc67bc910  x13 0000007fc67bc988  x14 0000000000000001  x15 0000000000000000
05-24 09:59:55.430 19937 19937 F DEBUG   :     x16 000000771b5d4620  x17 000000779c6cc000  x18 00000077a0cf8000  x19 00000077a05486c0
05-24 09:59:55.430 19937 19937 F DEBUG   :     x20 0000000000000000  x21 00000077a077f020  x22 0000007fc67bcc20  x23 00000076b0a32d42
05-24 09:59:55.430 19937 19937 F DEBUG   :     x24 0000000000000010  x25 00000077a077f020  x26 00000077a0490cb0  x27 0000000000000004
05-24 09:59:55.430 19937 19937 F DEBUG   :     x28 0000007fc67bc9a0  x29 0000007fc67bc960
05-24 09:59:55.430 19937 19937 F DEBUG   :     sp  0000007fc67bc920  lr  000000769c9c62c4  pc  000000769c9c62c8
05-24 09:59:55.449  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.449  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.490   950  2849 I WifiHAL : event received NL80211_CMD_VENDOR, vendor_id = 0x1374, subcmd = 0x6b
05-24 09:59:55.500   940  1150 I CHRE    : @ 771755.651: [AR_CHRE] audiofusion: Classification(4s-multimodal-model) : Other = 0.996780, Car = 0.003219
05-24 09:59:55.501  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.501  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.552  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.552  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.604  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.604  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.655  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.655  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.709  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.709  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.762  2851  2927 I bt_stack: [INFO:btif_config.cc(756)] hash_file: Disabled for multi-user
05-24 09:59:55.762  2851  2927 I bt_stack: [INFO:btif_config.cc(798)] write_checksum_file: Disabled for multi-user, since config changed removing checksums.
05-24 09:59:55.767 19937 19937 F DEBUG   : 
05-24 09:59:55.767 19937 19937 F DEBUG   : backtrace:
05-24 09:59:55.767 19937 19937 F DEBUG   :       #00 pc 00000000000852c8  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.767 19937 19937 F DEBUG   :       #01 pc 000000000013f350  /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.767 19937 19937 F DEBUG   :       #02 pc 0000000000136334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.767 19937 19937 F DEBUG   :       #03 pc 000000000014506c  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.767 19937 19937 F DEBUG   :       #04 pc 00000000002df738  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.767 19937 19937 F DEBUG   :       #05 pc 00000000002daa18  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.767 19937 19937 F DEBUG   :       #06 pc 00000000002e79c4  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+13508) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #07 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #08 pc 00000000004caf20  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.NativeMapView.addSource)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #09 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #10 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #11 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #12 pc 00000000002e939c  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+20124) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #13 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #14 pc 00000000004cd420  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.Style.addSource)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #15 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #16 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #17 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #18 pc 00000000002e9238  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+19768) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #19 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #20 pc 0000000000079014  [anon:dalvik-classes2.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk!classes2.dex] (com.geeksville.mesh.ui.MapFragment$onViewCreated$1$1.onStyleLoaded)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #21 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #22 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #23 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #24 pc 00000000002e939c  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+20124) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #25 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #26 pc 00000000004c90d0  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.MapboxMap.notifyStyleLoaded)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #27 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #28 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #29 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #30 pc 00000000002e9238  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+19768) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #31 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #32 pc 00000000004c91b8  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.MapboxMap.onFinishLoadingStyle)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #33 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #34 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #35 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #36 pc 00000000002e9238  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+19768) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #37 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #38 pc 00000000004c5c64  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.MapView$MapCallback.onDidFinishLoadingStyle)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #39 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #40 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #41 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #42 pc 00000000002e939c  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+20124) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #43 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #44 pc 00000000004c23e8  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.MapChangeReceiver.onDidFinishLoadingStyle)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #45 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #46 pc 00000000002b6170  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+204) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #47 pc 00000000002da9fc  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #48 pc 00000000002e939c  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+20124) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #49 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #50 pc 00000000004cb214  [anon:dalvik-classes.dex extracted in memory from /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/base.apk] (com.mapbox.mapboxsdk.maps.NativeMapView.onDidFinishLoadingStyle)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #51 pc 00000000002b0480  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+492) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #52 pc 00000000005893e4  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #53 pc 000000000013f468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #54 pc 0000000000136334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #55 pc 000000000014506c  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #56 pc 00000000004a9668  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #57 pc 00000000004aa9b8  /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+424) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #58 pc 0000000000393260  /apex/com.android.runtime/lib64/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+632) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #59 pc 0000000000367ffc  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+2372) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #60 pc 0000000000356364  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+72) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #61 pc 0000000000077664  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #62 pc 0000000000077f20  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #63 pc 000000000007a920  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #64 pc 00000000000d5e44  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #65 pc 0000000000121e44  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #66 pc 0000000000123ad8  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #67 pc 000000000016d090  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #68 pc 00000000000c225c  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #69 pc 0000000000093ca0  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #70 pc 0000000000093d7c  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.768 19937 19937 F DEBUG   :       #71 pc 0000000000092848  /data/app/com.geeksville.mesh-dDwoIlIKp3KiIGPA0Hvpug==/lib/arm64/libmapbox-gl.so (BuildId: 980ac71743367a134a958880e67d32f69eb7de18)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #72 pc 0000000000017d54  /system/lib64/libutils.so (android::Looper::pollInner(int)+856) (BuildId: 0df2a8dd53d2bcb22474e13735f3cab5)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #73 pc 000000000001795c  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+56) (BuildId: 0df2a8dd53d2bcb22474e13735f3cab5)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #74 pc 0000000000135c00  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d501f72a0b6c81722368d03bb54cdf67)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #75 pc 00000000002a3afc  /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: 1931a5f8587a133da6f6ac0e6825deec0d596cd1)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #76 pc 000000000200dcdc  /memfd:/jit-cache (deleted) (android.os.MessageQueue.next+204)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #77 pc 00000000020479f8  /memfd:/jit-cache (deleted) (android.os.Looper.loop+408)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #78 pc 000000000013663c  /apex/com.android.runtime/lib64/libart.so (art_quick_osr_stub+60) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #79 pc 0000000000333aa0  /apex/com.android.runtime/lib64/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+1660) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #80 pc 00000000002e7658  /apex/com.android.runtime/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+12632) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #81 pc 0000000000141bd8  /apex/com.android.runtime/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #82 pc 000000000031aefc  /system/framework/framework.jar (android.os.Looper.loop)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #83 pc 000000000059ace0  /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1288) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #84 pc 0000000000130994  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #85 pc 000000000018a2e2  /system/framework/framework.jar (android.app.ActivityThread.main+194)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #86 pc 00000000002b0384  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1271440803783865717+240) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #87 pc 00000000005893e4  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #88 pc 000000000013f468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #89 pc 000000000013f65c  /apex/com.android.runtime/lib64/libart.so (art_quick_instrumentation_entry+252) (BuildId: 782d7b327d3cde508b7954af1362b4c0)
05-24 09:59:55.769 19937 19937 F DEBUG   :       #90 pc 00000000007fc1bc  [stack]

only apply forceServiceRefresh hack if needed

In RadioInterfaceService we apply a nasty hack to force (sometimes buggy) BLE implementations to always refresh the service cache from the device. This slows the connection time and spends battery on both the phone and device.

It would be much better to only apply that hack if we fail to find our service or characteristic. And only try to apply that hack once per session.

autobug on a P9000 in version 0.6.8

Thanks for the report @SensorsIot. I'll look into this one early next week.

Non-fatal Exception: java.lang.AssertionError: Assertion failed
at com.geeksville.android.Logging$DefaultImpls.logAssert(Logging.java:62)
at com.geeksville.mesh.service.SafeBluetooth.logAssert(SafeBluetooth.java:51)
at com.geeksville.mesh.service.SafeBluetooth.asyncConnect(SafeBluetooth.java:527)
at com.geeksville.mesh.service.RadioInterfaceService.startConnect(RadioInterfaceService.java:544)
at com.geeksville.mesh.service.RadioInterfaceService.retryDueToException(RadioInterfaceService.java:423)
at com.geeksville.mesh.service.RadioInterfaceService$retryDueToException$1.invokeSuspend(RadioInterfaceService.java)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:56)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.java:738)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java:665)

com.geeksville.mesh_issue_5a69d35a2b8b043053126ff44f0537c6_error_session_5EDA4819026F000108B6257A174C32F5_DNE_0_v2.log

bluetooth fails on a "Soyes XS"

alas - they have disabled logging uploads, this is the only contents I received for the log

# Crashlytics - Custom logs
# Application: com.geeksville.mesh
# Platform: android
# Version: 0.6.6 (166)
# Issue: a91178babb9fbe1de0c2c5d2f51c1cae
# Session: 5ECEBB7A022200010FA875CCDE764D05_DNE_0_v2
# Date: Wed May 27 2020 12:13:00 GMT-0700 (Pacific Daylight Time)

0 | Wed May 27 2020 12:13:05 GMT-0700 (Pacific Daylight Time) | session_start

bug report about “Error: null” message

from @dzimmanck:

Not sure if this is a feature or a bug, but I noticed that after the T-beam goes to sleep (the initial one after a few minutes after no bluetooth activity), if I try to send a message from my phone I get an “Error: null” message. I had to manually wake-up the T-beam with the middle button in order to send messages to the network again.

I submitted the a bug report within the app. I am using the latest version of the app from the Android app store and I am using commit 420b7d4 of the meshtastic-device source on a T-beam.

Soyes XS phone does not connect to device.

logcat output

06-03 22:03:51.757 9263-9263/com.geeksville.mesh E/MultiWindowProxy: getServiceInstance failed!
06-03 22:03:52.276 9263-9263/com.geeksville.mesh E/toRemoteExceptions: Uncaught exception, returning to remote client
    com.geeksville.mesh.service.RadioNotConnectedException: We don't yet have our myNodeInfo
        at com.geeksville.mesh.service.MeshService.getMyNodeNum(MeshService.kt:654)
        at com.geeksville.mesh.service.MeshService.getMyNodeID(MeshService.kt:657)
        at com.geeksville.mesh.service.MeshService.access$getMyNodeID$p(MeshService.kt:50)
        at com.geeksville.mesh.service.MeshService$binder$1$getMyId$1.invoke(MeshService.kt:1492)
        at com.geeksville.mesh.service.MeshService$binder$1$getMyId$1.invoke(MeshService.kt:1465)
        at com.geeksville.util.ExceptionsKt.toRemoteExceptions(Exceptions.kt:56)
        at com.geeksville.mesh.service.MeshService$binder$1.getMyId(MeshService.kt:1492)
        at com.geeksville.mesh.MainActivity.updateNodesFromDevice(MainActivity.kt:530)
        at com.geeksville.mesh.MainActivity.access$updateNodesFromDevice(MainActivity.kt:103)
        at com.geeksville.mesh.MainActivity$mesh$1$onConnected$1.invoke(MainActivity.kt:680)
        at com.geeksville.mesh.MainActivity$mesh$1$onConnected$1.invoke(MainActivity.kt:662)
        at com.geeksville.util.ExceptionsKt.exceptionReporter(Exceptions.kt:34)
        at com.geeksville.mesh.MainActivity$mesh$1.onConnected(MainActivity.kt:666)
        at com.geeksville.mesh.MainActivity$mesh$1.onConnected(MainActivity.kt:662)
        at com.geeksville.android.ServiceClient$connection$1$onServiceConnected$1.invoke(ServiceClient.kt:68)
        at com.geeksville.android.ServiceClient$connection$1$onServiceConnected$1.invoke(ServiceClient.kt:63)
        at com.geeksville.util.ExceptionsKt.exceptionReporter(Exceptions.kt:34)
        at com.geeksville.android.ServiceClient$connection$1.onServiceConnected(ServiceClient.kt:64)
        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1264)
        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1281)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5765)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

currentWork was !null

@feh123, this is the bug you reported - I'm finally working on it ;-)

Root cause log:
Non-fatal Exception: java.lang.AssertionError: currentWork was not null: com.geeksville.mesh.service.SafeBluetooth$BluetoothContinuation@76021b6
at com.geeksville.mesh.service.SafeBluetooth.asyncConnect(SafeBluetooth.java:497)
at com.geeksville.mesh.service.BluetoothInterface.startConnect(BluetoothInterface.java:435)
at com.geeksville.mesh.service.BluetoothInterface.retryDueToException(BluetoothInterface.java:333)
at com.geeksville.mesh.service.BluetoothInterface$retryDueToException$1.invokeSuspend(BluetoothInterface.java)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:56)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.java:738)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java:665)

com.geeksville.mesh_issue__error_session_5EEF0C36032E00014F61BF14B4903F25_DNE_0_v2.log

From button press:
com.geeksville.mesh_issue__error_session_5EF08DF2011000010B0B574425F520AD_DNE_2_v2.log

Feature: 24h format for time

Currently the time is shown only in am/pm format (8:00am / 8:00pm). I would like to have the option to set it to 24hour (18:00).

bluetooth status=133 on OnePlus5T

0.5.7

Non-fatal Exception: com.geeksville.mesh.service.SafeBluetooth$BLEStatusException: Bluetooth status=133 while doing readC 8ba2bcc2-ee02-4a55-a531-c525c5e454d5
       at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(SafeBluetooth.java:347)
       at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(SafeBluetooth.java:50)
       at com.geeksville.util.ExceptionsKt.exceptionReporter(ExceptionsKt.java:34)
       at com.geeksville.mesh.service.SafeBluetooth.completeWork(SafeBluetooth.java:329)
       at com.geeksville.mesh.service.SafeBluetooth.access$completeWork(SafeBluetooth.java:50)
       at com.geeksville.mesh.service.SafeBluetooth$gattCallback$1.onCharacteristicRead(SafeBluetooth.java:224)
       at android.bluetooth.BluetoothGatt$1$6.run(BluetoothGatt.java:384)
       at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:770)
       at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:39)
       at android.bluetooth.BluetoothGatt$1.onCharacteristicRead(BluetoothGatt.java:378)
       at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:125)
       at android.os.Binder.execTransact(Binder.java:752)

com.geeksville.mesh_issue_257464f0fc80a8abd0035630ee184bc1_error_session_5EA54E63013400015E318D934FF68DD2_DNE_3_v2.log

Publish Android App to F-Droid

Would it be possible to get the Android App published on F-Droid? I believe they are happy to have pre-release versions available alongside stable versions.

currentWork was null 0.7.84

Non-fatal Exception: java.lang.Exception: currentWork was null
at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(SafeBluetooth.java:372)
at com.geeksville.mesh.service.SafeBluetooth$completeWork$1.invoke(SafeBluetooth.java:32)
at com.geeksville.util.ExceptionsKt.exceptionReporter(ExceptionsKt.java:34)
at com.geeksville.mesh.service.SafeBluetooth.completeWork(SafeBluetooth.java:364)
at com.geeksville.mesh.service.SafeBluetooth.access$completeWork(SafeBluetooth.java:32)
at com.geeksville.mesh.service.SafeBluetooth$gattCallback$1$onConnectionStateChange$1.invoke(SafeBluetooth.java:144)
at com.geeksville.mesh.service.SafeBluetooth$gattCallback$1$onConnectionStateChange$1.invoke(SafeBluetooth.java:126)
at com.geeksville.util.ExceptionsKt.exceptionReporter(ExceptionsKt.java:34)
at com.geeksville.mesh.service.SafeBluetooth$gattCallback$1.onConnectionStateChange(SafeBluetooth.java:132)
at android.bluetooth.BluetoothGatt$1$4.run(BluetoothGatt.java:272)
at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:780)
at android.bluetooth.BluetoothGatt.access$200(BluetoothGatt.java:41)
at android.bluetooth.BluetoothGatt$1.onClientConnectionState(BluetoothGatt.java:267)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:192)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)

TTS support

It just struck me this morning (while pondering another project) that one way to transmit voice over LORA would be to use cellphone apps on either end to do speech to text on one end, send the text, then do text to speech on the other. (Might it be possible for individuals to set up phoneme databases so that the transmitted voice would be theirs?) One further advantage would be a transcript of the conversation. (...and a lot of laughter from autocorrect hijinx. 😁 )

Does that make sense?

If location permissions are denied we should complain to the user until they are given.

I use t-beam.I am using firmware-tbeam-EU865-0.6.7.bin as the test firmware for tbeam, In most cases, I cannot find the Bluetooth device, or when it is found, I connect, after pairing is completed, after using the app, click the input box in the app message box, and the input is not possible. The most seen in the setting bar is "Connected to radio, but it is sleeping". Sometimes after the device has been connected and paired, it still shows in the application that the device needs to be paired in the setting , Also, I was trying to run this code in TTGO Twatch and encountered the same problem. I suspect this is a problem with the application

While device is in NB state, app should say "battery saver mode" and it should properly queue outbound packets

Just leaving the phone connected to the t-beam results in it loosing connection.

The app is ver 0.1.2
board is running 0.1.0

Close to the end of the logfile there is

03-08 16:12:57.329 4236 4236 W com.geeksville.mesh.service.MeshService: Abandoning reconnect attempt, due to errors during init: Bluetooth status=1 while doing readC ea9f3f82-8dc4-4733-9452-1f6da28892a2

logcat logfile is attached.

2020-03-08_16:04:21.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.