dashboard
dashboard copied to clipboard
"Find phone" doesn't use configured sound when triggered from Pebble
I've tried the "find phone" feature, but my phone only gives a short "tock". So I've picked a sound I found more fitting. Hitting the "test" button in the Android app indeed plays that sound – but when I use that feature from the Pebble, I still only get that "tock" – and a toast saying "no file chosen, or was unavailable". Opening the picker again, the choosen sound is no longer marked – instead "none" is selected.
Android: BQ Aquaris X5 Plus running LineageOS 14.1 (Android 7.1.1), no GApps (but microG)
Pebble: Pebble Time Steel, FW 4.3 (still looking who might have the 4.4 I didn't receive as I never used the official Pebble app)
This is possibly related to changes in app vs user storage... Will investigate.
Let me know if I shall test something. I'm also open to using a test APK to verify. In case it helps, here comes the relevant
Logcat
02-11 22:21:08.247 19974 2281 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleProtocol: got APPLICATIONMESSAGE PUSH from UUID : d522bc8e-65f3-4edf-9651-05e1e4567021 02-11 22:21:08.248 19974 2281 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleIoThread: Got AppMessage event 02-11 22:21:08.249 19974 2281 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: broadcasting to uuid d522bc8e-65f3-4edf-9651-05e1e4567021 transaction id: 3 JSON: [{"key":544,"length":4,"type":"int","value":0},{"key":12,"length":4,"type":"int","value":2}] 02-11 22:21:08.276 26697 26697 I background.PebbleReceiver: [11/02 22:21:08.275] [I] [background.PebbleReceiver] Dashboard received Intent with matching UUID. 02-11 22:21:08.278 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: Got action: com.getpebble.action.app.ACK 02-11 22:21:08.281 26697 26697 I background.PebbleReceiver: [11/02 22:21:08.280] [I] [background.PebbleReceiver] startService on version 25 02-11 22:21:08.289 26697 26697 I background.PebbleReceiver: [11/02 22:21:08.288] [I] [background.PebbleReceiver] Dashboard received Intent with matching UUID. 02-11 22:21:08.294 26697 26697 I background.PebbleReceiver: [11/02 22:21:08.293] [I] [background.PebbleReceiver] startService on version 25 02-11 22:21:08.303 26697 26697 I background.HandlerService: [11/02 22:21:08.302] [I] [background.HandlerService] onStartCommand 02-11 22:21:08.307 26697 26697 I background.HandlerService: [11/02 22:21:08.306] [I] [background.HandlerService] Dashboard v4.15 (compatible v4.8) 02-11 22:21:08.311 26697 26697 I background.HandlerService: [11/02 22:21:08.310] [I] [background.HandlerService] Got toggle request 02-11 22:21:08.314 26697 26697 I background.HandlerService: [11/02 22:21:08.314] [I] [background.HandlerService] Toggling find phone... 02-11 22:21:08.320 26697 26697 I background.HandlerService: [11/02 22:21:08.319] [I] [background.HandlerService] onStartCommand finished. 02-11 22:21:08.325 26697 26697 I background.HandlerService: [11/02 22:21:08.325] [I] [background.HandlerService] onStartCommand 02-11 22:21:08.330 26697 26697 I background.HandlerService: [11/02 22:21:08.329] [I] [background.HandlerService] Dashboard v4.15 (compatible v4.8) 02-11 22:21:08.335 26697 26697 I background.HandlerService: [11/02 22:21:08.335] [I] [background.HandlerService] Got toggle request 02-11 22:21:08.339 26697 26697 I background.HandlerService: [11/02 22:21:08.338] [I] [background.HandlerService] Toggling find phone... 02-11 22:21:08.344 26697 26697 I background.HandlerService: [11/02 22:21:08.343] [I] [background.HandlerService] onStartCommand finished. 02-11 22:21:08.348 26697 26697 I background.FindPhone: [11/02 22:21:08.347] [I] [background.FindPhone] FindPhone onStartCommand 02-11 22:21:08.352 26697 26697 I background.FindPhone: [11/02 22:21:08.351] [I] [background.FindPhone] Starting find phone... 02-11 22:21:08.359 26697 26697 I background.FindPhone: [11/02 22:21:08.358] [I] [background.FindPhone] Using loaded Uri: content://media/internal/audio/media/43 02-11 22:21:08.360 26697 26697 E MediaPlayer: stop called in state 1, mPlayer(0x0) 02-11 22:21:08.360 26697 26697 E MediaPlayer: error (-38, 0) 02-11 22:21:08.372 2817 3174 I vol.Events: writeEvent level_changed STREAM_ALARM 7 02-11 22:21:08.389 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: Got action: com.getpebble.action.app.ACK 02-11 22:21:08.400 536 8683 D NuPlayerDriver: notifyListener_l(0xa574d000), (1, 0, 0), loop setting(0, 1) 02-11 22:21:08.403 536 19359 D NuPlayerDriver: start(0xa574d000), state is 4, eos is 0 02-11 22:21:08.404 536 8683 I GenericSource: start 02-11 22:21:08.406 26697 26697 I background.FindPhone: [11/02 22:21:08.406] [I] [background.FindPhone] Sound started. 02-11 22:21:08.409 536 8683 W Utils : track of type 'audio/vorbis' does not publish channel mask, channel count 1 02-11 22:21:08.413 536 8683 W Utils : track of type 'audio/vorbis' does not publish channel mask, channel count 1 02-11 22:21:08.416 536 8687 I MediaPlayerService: MediaPlayerService::getOMX 02-11 22:21:08.417 536 8687 I OMXClient: MuxOMX ctor 02-11 22:21:08.417 533 533 I OMXMaster: makeComponentInstance(OMX.google.vorbis.decoder) in mediacodec process 02-11 22:21:08.419 26697 26697 I background.FindPhone: [11/02 22:21:08.419] [I] [background.FindPhone] Sound started. 02-11 22:21:08.421 533 3111 E OMXNodeInstance: setConfig(21505cd:google.vorbis.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001) 02-11 22:21:08.422 536 8687 I ACodec : codec does not support config priority (err -2147483648) 02-11 22:21:08.424 536 8687 I MediaCodec: MediaCodec will operate in async mode 02-11 22:21:08.425 26697 26697 I background.FindPhone: [11/02 22:21:08.424] [I] [background.FindPhone] FindPhone onStartCommand finished 02-11 22:21:08.430 26697 26697 I background.FindPhone: [11/02 22:21:08.429] [I] [background.FindPhone] FindPhone onStartCommand 02-11 22:21:08.434 26697 26697 I background.FindPhone: [11/02 22:21:08.433] [I] [background.FindPhone] Stopping find phone... 02-11 22:21:08.437 536 2870 D NuPlayerDriver: stop(0xa574d000) 02-11 22:21:08.437 536 2870 D NuPlayerDriver: notifyListener_l(0xa574d000), (8, 0, 0), loop setting(0, 1) 02-11 22:21:08.437 2817 3174 I vol.Events: writeEvent level_changed STREAM_ALARM 6 02-11 22:21:08.437 536 19359 D NuPlayerDriver: reset(0xa574d000) at state 8 02-11 22:21:08.449 536 8683 W AMessage: failed to post message as target looper for handler 0 is gone. 02-11 22:21:08.450 536 8683 D NuPlayerDriver: notifyResetComplete(0xa574d000) 02-11 22:21:08.450 536 2870 D NuPlayerDriver: reset(0xa574d000) at state 0 02-11 22:21:08.467 26697 26697 I background.FindPhone: [11/02 22:21:08.466] [I] [background.FindPhone] FindPhone onStartCommand finished 02-11 22:21:08.505 19974 19974 I nodomain.freeyourgadget.gadgetbridge.externalevents.NotificationListener: Ignore notification 02-11 22:21:08.512 19974 19974 I nodomain.freeyourgadget.gadgetbridge.externalevents.NotificationListener: Ignore notification 02-11 22:21:08.517 19974 19974 I nodomain.freeyourgadget.gadgetbridge.externalevents.NotificationListener: Ignore notification 02-11 22:21:08.517 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: Got action: com.getpebble.action.app.SEND 02-11 22:21:08.518 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: json string: [{"key":12,"type":"int","length":1,"value":2}] 02-11 22:21:08.552 19974 2281 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleProtocol: got APPLICATIONMESSAGE/LAUNCHER (EP 48) ACK 02-11 22:21:08.630 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: broadcasting ACK (transaction id -1) 02-11 22:21:08.632 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: Got action: com.getpebble.action.app.SEND 02-11 22:21:08.633 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: json string: [{"key":12,"type":"int","length":1,"value":1}] 02-11 22:21:08.664 19974 2281 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleProtocol: got APPLICATIONMESSAGE/LAUNCHER (EP 48) ACK 02-11 22:21:08.735 19974 19974 I nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleKitSupport: broadcasting ACK (transaction id -1) 02-11 22:21:08.737 19974 19974 I nodomain.freeyourgadget.gadgetbridge.externalevents.NotificationListener: Notification removed: com.wordpress.ninedof.dashboard: null 02-11 22:21:08.749 528 27853 I AudioPolicyManagerCustom: FLAG None hence request for a primary output 02-11 22:21:08.751 528 27854 I AudioPolicyManagerCustom: Direct PCM is disabled for this request 02-11 22:21:08.752 2817 3174 D AudioTrack: Client defaulted notificationFrames to 240 for frameCount 960 02-11 22:21:08.766 528 796 D audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2 02-11 22:21:08.766 528 796 D audio_hw_extn: audio_extn_set_anc_parameters: anc_enabled:0 02-11 22:21:08.767 2538 2629 W qti_sensors_hal: timestampCalc: Adjusting timestamp for rollover: 3208535404896274, 2 02-11 22:21:08.771 528 796 D audio_hw_primary: start_output_stream: enter: stream(0xa8aa5200)usecase(1: low-latency-playback) devices(0x2) 02-11 22:21:08.771 528 796 D audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: ) 02-11 22:21:08.771 528 796 I msm8916_platform: platform_check_and_set_codec_backend_cfg: Usecase bitwidth 16, samplerate 48000, backend_idx 0 02-11 22:21:08.771 528 796 I msm8916_platform: platform_check_codec_backend_cfg Codec selected backend: 0 current bit width: 16 and sample rate: 48000 02-11 22:21:08.771 528 796 D msm8916_platform: platform_check_codec_backend_cfg: resetting sample_rate back to default, backend_idx: 0 02-11 22:21:08.771 528 796 I msm8916_platform: platform_check_codec_backend_cfg Codec selected backend: 0 updated bit width: 16 and sample rate: 48000 02-11 22:21:08.771 528 796 D hardware_info: hw_info_append_hw_type : device_name = speaker 02-11 22:21:08.771 528 796 D audio_hw_primary: enable_snd_device: snd_device(2: speaker) 02-11 22:21:08.771 528 796 I audio_hw_primary: select_devices Selected apptype: 69937 02-11 22:21:08.772 528 796 I audio_hw_utils: audio_extn_utils_send_app_type_cfg app_type 69937, acdb_dev_id 14, sample_rate 48000 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_audio_cal, acdb_id = 14, path = 0 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_asm_topology 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TOPOLOGY_ID 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_adm_topology 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TOPOLOGY_ID 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_audtable 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TABLE_SIZE 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TABLE 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_CAL 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_audvoltable 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_GAIN_DEP_STEP_TABLE 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_VOL_CAL 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_audstrmtable 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TABLE_V2 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> audstrm_cal->cal_type.cal_data.cal_size = 32 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_afe_topology 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_TOPOLOGY_ID 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> GET_AFE_TOPOLOGY_ID for adcd_id 14, Topology Id 1025e 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_afe_cal 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_COMMON_TABLE 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> AUDIO_SET_AFE_CAL 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> send_hw_delay : acdb_id = 14 path = 0 02-11 22:21:08.772 528 796 D ACDB-LOADER: ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY 02-11 22:21:08.772 528 796 D audio_hw_primary: enable_audio_route: apply mixer and update path: low-latency-playback smpa 02-11 22:21:08.773 528 796 D audio_hw_primary: select_devices: done 02-11 22:21:08.780 528 796 D msm8916_platform: platform_set_channel_map mixer_ctl_name:Playback Channel Map12 02-11 22:21:08.780 528 796 D msm8916_platform: platform_set_channel_map: set mapping(1 2 0 0 0 0 0 0) for channel:2 02-11 22:21:08.806 2538 2629 W qti_sensors_hal: timestampCalc: Adjusting timestamp for rollover: 3208535444721714, 2 02-11 22:21:08.806 528 796 D audio_hw_primary: start_output_stream: exit
Now I've got it working I can report that a custom sound is working perfectly for me, both from the test button and the pebble watch app. Gadgetbridge on Android 10 also with no GApps and microG instead.
FYI @IzzySoft I believe that firmware 4.4 is just a modified version of 4.3 to fix Rebble dictation on iOS, and therefore irrevalent to Android GadgetBridge users (I assume why GB doesn't host a copy of it).
Now I've got it working
Cool, looking forward to the APK!
As for 4.4: Yes, it's just a modified 4.3. But it's also said to remove analytics and thus save juice (something like 10% more run-time with one charge). And no, GB has no copy of it but also wants it (I've got direct contact to the team; actually it was them telling me about 4.4 and asking whether I'd know a source).
As for 4.4: Yes, it's just a modified 4.3. But it's also said to remove analytics and thus save juice (something like 10% more run-time with one charge). And no, GB has no copy of it but also wants it (I've got direct contact to the team; actually it was them telling me about 4.4 and asking whether I'd know a source).
Found this curious so I did a bit of digging and found a copy for you, http://nyus.joshuawise.com/Pebble-4.4.0-rbl-snowy_s3.pbz. Please pass it on to the GB team.
You can switch out the codename in the URL to match that of the device you want the firmware for (silk, snowy_dvt, snowy_s3, spalding).
That's mega cool, thanks! Forwarded it right away (and downloaded it myself; needed to revert to "http", though – ah, I see you had the same issue :smile:).
PS: GB Team gives their whole-heated thanks! Tested on one of their Pebbles, and now running on mine, too. Guess it's fine to include the link with the GB Wiki?
Guess it's fine to include the link with the GB Wiki?
I'm not the one hosting it, I found it using a combination of AdAway (to log the domain while downloading it via the official pebble app) and searching through the rebble discord server (where it was posted by an official rebble contributor a while ago, confirming it is legit). I assume it is ok to link directly to it (I can't think of any issue) but if you're concerned you could always host a mirror somewhere or just ask rebble...
Thanks @p4t44 – if they wrote it publically (and without a disclaimer) it should be OK to do the same.
My Pixel 2 on Android 10 with latest Dashboard v4.15 doesn't seem to exhibit this problem - I configure a sound and then I can play it later to find my phone elsewhere in the house.
Is this still an issue? If so, I may need more help in debugging.
Yes, issue still exists (with Pebble FW 4.4 now). Have you seen the logcat in this comment? Just click/tap the word "Logcat" there to open the "spoiler" if not. How else can I help with debugging? Anything I should try? Any debug APK I shall use?
After switching to a new custom ROM (for entirely unrelated reasons) I had the same issue, my chosen custom sound wouldn't play. I solved it by manually granting Dashboard the "storage" permission which it apparently didn't ask for, perhaps that is your issue?
Thanks @p4t44 – I've checked that, and indeed that permission was not granted. I gave it, but the situation remains unchanged – even after force-restarting the app:
- the app shows the correct sound is set
- the test button gives a "beep", but then plays the correct sound
- triggering it from the watch just gives the "beep"
- tapping the "choose sound" button opens the list of sounds available, with the radio box of "None" being checked
LineageOS "Privacy Guard" confirms access to storage (both read and write) are granted and have been used multiple times. No idea what else to check.
I will add the storage permission for today's release (I know), and we can continue to debug this.
Which exact permission string are you referring to? I already added these ages ago:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Yes, those. But since MM, apps are expected to ask before using them the first time. So if your app targets MM or higher, the app must do so. That's called "runtime permissions", and you can find details here.
Yes, I've been aware of runtime permissions since my other app Wristponder got caught up in the upgrade process too early.
And I've been trying
... to avoid them because Dashboard is supposed to operate in the background almost exclusively.
But then again, maybe expecting at least one Android app launch isn't too terrible after all...
Well, how else should the user pick a sound? Or install the watchapp? :smile:
I guess they'll have to wait for me to find the time to rework the entire permission flow.
Not pressing, just curious: any news on this?
Not yet. It works for all the devices I have, so hard to find what causes the problem for you. I'll try and find time for more investigation soon.
Could "no GApps" play a role here? Plain LineageOS (with microG) on my device. And running via Gadgetbridge (not Pebble/Rebble app; installed from F-Droid of course). Firmware upgraded to 4.4 meanwhile, thanks to the link provided by ghost.
Same issue happening for me, triggering Find my phone from watch never plays any sound, Test button works, both when custom sound is set and with default, When the notification sound is set as default, triggering from watch shows a toast saying no sound selected so using default but makes no sound, selecting a custom sound makes it not make any sound as well as no toast.
Have gapps on phone and still facing the issue, so its probably not related to that.