Closed acepilot111 closed 2 months ago
Hi, I have the wake lock permission, strange. what's the exact label of the all the time permissions? so i will check on documentation
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno lun 29 lug 2024 alle 00:19 acepilot111 @.***> ha scritto:
Assigned #2489 https://github.com/cagnulein/qdomyos-zwift/issues/2489 to @cagnulein https://github.com/cagnulein.
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#event-13672301029, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWHYPRRDTGYD5XUZOILZOVU6BAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTGY3TEMZQGEYDEOI . You are receiving this because you were assigned.Message ID: @.***>
I cleared the data from the qz app in my watch and restarted it. Here are pics of the permissions it asked for. On other apps when this pops up, one option I can pick from is "always". That option wasn't available when picking for the qz app.
Nathan
From: Roberto Viola @.> Sent: Monday, July 29, 2024 12:06:19 AM To: cagnulein/qdomyos-zwift @.> Cc: acepilot111 @.>; Author @.> Subject: Re: [cagnulein/qdomyos-zwift] [BUG] Wear OS app not staying active (Issue #2489)
Hi, I have the wake lock permission, strange. what's the exact label of the all the time permissions? so i will check on documentation
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno lun 29 lug 2024 alle 00:19 acepilot111 @.***> ha scritto:
Assigned #2489 https://github.com/cagnulein/qdomyos-zwift/issues/2489 to @cagnulein https://github.com/cagnulein.
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#event-13672301029, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWHYPRRDTGYD5XUZOILZOVU6BAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTGY3TEMZQGEYDEOI . You are receiving this because you were assigned.Message ID: @.***>
— Reply to this email directly, view it on GitHubhttps://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2254953390, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BKFF37EQKW5XA7FTC2LCRCTZOXEUXAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJUHE2TGMZZGA. You are receiving this because you authored the thread.Message ID: @.***>
hi @acepilot111 you have to upload the pictures on the github web interface otherwise I can't see them
i don't think that's about this issue. maybe it's a different permission? can you show me an example of the permissions required from example from strava?
I could be totally wrong thinking this has to do with permission. The only reason I thought that in the first place was because I have attempted to do this same thing with a different app called Bluetooth Heart Rate Monitor (https://play.google.com/store/apps/details?id=com.bmi.hr_monitor&hl=en_US). When I first open that app, it asks for the same permissions, but then warns the user that the "aways" level has not been granted and thus the app wont work. That could be complete BS for all I know, but you can then tap "request permissions" again and the "all the time" option is then available.
Here is a link to a video of how that app requests permissions: https://photos.app.goo.gl/WrAYKMoE7mTAFYzw5
hah ok it's about this one https://developer.android.com/health-and-fitness/guides/health-services/background-body-sensors?hl=it
Let me try to add it and let's see if it makes any difference. send me an email to roberto.viola83 at gmail.com indicating this ticket and I will add you to the internal beta in order to test it
hi @acepilot111 i checked the logcat that you sent me by email yesterday.
I can see
07-30 15:32:04.368 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@d848393,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:05.337 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@238bb94,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:06.335 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@1d8671,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:07.343 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@cd7113a,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:08.389 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@93162bf,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:09.360 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@e56fc90,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:10.331 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@9abd7fd,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
07-30 15:32:11.389 18184 18184 D sendHeartRateToPhone: Sending text was successful: DataItemParcelable[@d83cf16,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
so for these 7 seconds the app was sending HR correctly, at least for its point of view. The last one is also the last line of the log so it seems that you interrupt the log when it was working, correct?
also i'm seeing this
07-30 15:32:04.324 2809 2985 I SHW - HeartRateSensorDailyHr: [createSensorDataList] timestamp:1722371523482, activityType:RESTING, status:OK, heartRate:62
but i can see one time only
and lucky for us I'm seeing something suspicious
07-30 15:32:03.714 18184 18184 E Exercise Sample: Prepare exercise failed - Missing permissions
the stupid thing is that
07-30 15:32:03.632 18184 18184 D Exercise Sample: Checking permissions
07-30 15:32:03.652 18184 18184 I Exercise Sample: All required permissions granted
07-30 15:32:03.652 18184 18184 D Exercise Sample: Preparing an exercise
07-30 15:32:03.714 18184 18184 E Exercise Sample: Prepare exercise failed - Missing permissions
07-30 15:32:03.714 18184 18184 D Exercise Sample: Starting exercise
first it said that it has everything and then that it failed. also I can't find any information about this on internet.
Then I was reading again this https://developer.android.com/health-and-fitness/guides/health-services/background-body-sensors
My english is not so good (i'm italian) but says this:
Caution: If your app requests both body sensor permissions at the same time, the system ignores the request and doesn't grant your app either permission.
so since now i'm requiring both in the code, maybe i have to ask only for the background one?
What do you think?
This actually makes a bit of sense to me based on what happened when you changed the app to ask for background and it broke the whole app. It also makes sense based on the video I sent of how the other Bluetooth heart rate transmitter app asked for permissions.
I think you may need to have your app do the same thing that Bluetooth app did in the video where it first asks for permission only while using the app, and then ask for background activity using a different second prompt.
By asking for background activity right away in 1.1.1, wear os ignores it and denies the permissions all together, thus it can't access the sensor, thus I don't see any pulse on the screen.
Let me know if that makes sense or not. I can try explaining it differently if that doesn't translate to Italian very well.
Again, thank you for taking the time to help get this figured out. I really appreciate it.
From: Roberto Viola @.> Sent: Wednesday, July 31, 2024 2:10:15 AM To: cagnulein/qdomyos-zwift @.> Cc: acepilot111 @.>; Mention @.> Subject: Re: [cagnulein/qdomyos-zwift] [BUG] Wear OS app not staying active (Issue #2489)
hi @acepilot111https://github.com/acepilot111 i checked the logcat that you sent me by email yesterday.
I can see
07-30 15:32:04.368 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:05.337 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:06.335 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:07.343 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:08.389 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:09.360 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:10.331 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz] 07-30 15:32:11.389 18184 18184 D sendHeartRateToPhone: Sending text was successful: @.,dataSz=22, numAssets=0, uri=wear://3fcef58d/qz]
so for these 7 seconds the app was sending HR correctly, at least for its point of view. The last one is also the last line of the log so it seems that you interrupt the log when it was working, correct?
also i'm seeing this
07-30 15:32:04.324 2809 2985 I SHW - HeartRateSensorDailyHr: [createSensorDataList] timestamp:1722371523482, activityType:RESTING, status:OK, heartRate:62
but i can see one time only
and lucky for us I'm seeing something suspicious
07-30 15:32:03.714 18184 18184 E Exercise Sample: Prepare exercise failed - Missing permissions
the stupid thing is that
07-30 15:32:03.632 18184 18184 D Exercise Sample: Checking permissions 07-30 15:32:03.652 18184 18184 I Exercise Sample: All required permissions granted 07-30 15:32:03.652 18184 18184 D Exercise Sample: Preparing an exercise 07-30 15:32:03.714 18184 18184 E Exercise Sample: Prepare exercise failed - Missing permissions 07-30 15:32:03.714 18184 18184 D Exercise Sample: Starting exercise
first it said that it has everything and then that it failed. also I can't find any information about this on internet.
Then I was reading again this https://developer.android.com/health-and-fitness/guides/health-services/background-body-sensors
My english is not so good (i'm italian) but says this:
Caution: If your app requests both body sensor permissions at the same time, the system ignores the request and doesn't grant your app either permission.
so since now i'm requiring both in the code, maybe i have to ask only for the background one?
What do you think?
— Reply to this email directly, view it on GitHubhttps://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2259827768, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BKFF37AIFWHTPJ55BOJUPNLZPCEVPAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJZHAZDONZWHA. You are receiving this because you were mentioned.Message ID: @.***>
I don't think bluetooth requests makes any difference. let's first test asking onlt for background and let's see how it goes. It will be online in 10 minute the version 1.1.2
let me know!
also i suggest to reinstall the app since you already granted all the permissions
That change was sort of successful. The app only asked for activity permission and did not ask for sensor permission at all. I first granted "all the time" access and it didnt show a pulse at all. Was back to being broken. Then I cleared the data and granted only "while using app" permission to the sensors in the settings. Then tested the app on the watch and I could see my pulse again. Then I granted "all the time" access and it was still able show a pulse and connected to the app on my phone once it connected to the bike. However, something is still not working in that either the app is freezing in the background or it stops communication with the app on my phone. When my watch screen turns off or goes into power saving mode or something, whatever heart rate was last sent to the app on the phone is what it stays at. It doenst go up or down. Then when I bring my wrist up to turn the watch screen back on or tap it to turn it on, the heart rate on the phone suddenly updates and keeps updating until the screen turns off and then it does it again. I also tried this with "always on display" turned on, but even then the screen dims and eventually goes back to the home face. Then it stops displaying the seconds and thats when the something happens that stops the app on the watch from sending data to the app on my phone. I managed to run a logcat with all that, but I think the cmd window I was using started to drop lines off and some of the log may have been lost. If you cant find any evidence of what I am talking about in the attached log let me know and I can try to capture it again.
one question: the Bluetooth Heart Rate Monitor also has the same behaviour during power saving mode?
I normally cant even get that app to show up in QZ on my phone so couldnt really test it, but just now finally got it to connect and show my pulse in the app. And yes, it does the same thing. When the watch screen turns off, a few moments later the pulse on the phone app freezes and stops updating. This has me thinking it is a wear os issue now. That the OS is being too aggressive in pausing apps to save battery even when the user explicitly wants them to keep running in the background.
Ok I thought you mentioned that app because it worked on your watch :) As far as i know the only app that works on your watch in power save mode is strava. You can try
@acepilot111 Any news with strava?
I used Strava on my watch to monitor a workout this morning and it seemed to record the whole activity just fine, including heart rate. However, the app on my watch doesn't seem to be able to do anything with Bluetooth, so I'm not sure how this test relates to using my watch to broadcast my heart rate.
doesn't matter about bluetooth. the communication with bluetooth is ok also in low power mode i assume. the issue is with hr. did you check via adb with strava if there is something useful?
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno mar 6 ago 2024 alle 18:13 acepilot111 @.***> ha scritto:
I used Strava on my watch to monitor a workout this morning and it seemed to record the whole activity just fine, including heart rate. However, the app on my watch doesn't seem to be able to do anything with Bluetooth, so I'm not sure how this test relates to using my watch to broadcast my heart rate.
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2271658288, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWAN5YPHA7MLIOOVSQDZQDYZTAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZRGY2TQMRYHA . You are receiving this because you were mentioned.Message ID: @.***>
No, I did not. I will try and do that next.
Finally managed to get the watch re-connected to ADB on my computer and capture the attached log. While logcat was running I opened Strava on the watch, started a generic workout then let the screen go dark. Waited about 20 seconds or so, tapped the screen and saw the timer was at 40 seconds for the workout. Then let it go dark again, waited a bit, then ended the workout, tapped the finish button to save the workout, then ended the logcat.
thanks I will check it tomorrow, 11pm here :)
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno mar 6 ago 2024 alle ore 22:54 acepilot111 < @.***> ha scritto:
Finally managed to get the watch re-connected to ADB on my computer and capture the attached log. While logcat was running I opened Strava on the watch, started a generic workout then let the screen go dark. Waited about 20 seconds or so, tapped the screen and saw the timer was at 40 seconds for the workout. Then let it go dark again, waited a bit, then ended the workout, tapped the finish button to save the workout, then ended the logcat.
Watch7StravaLog.txt https://github.com/user-attachments/files/16515634/Watch7StravaLog.txt
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2272133102, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWCVPSEUW5GLJ5AOOSTZQEZXHAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZSGEZTGMJQGI . You are receiving this because you were mentioned.Message ID: @.***>
Checked and I made some changes. I will check on my old wearos device if it's working this evening and I will let you know
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno mar 6 ago 2024 alle ore 22:55 cagnulein @.***> ha scritto:
thanks I will check it tomorrow, 11pm here :)
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno mar 6 ago 2024 alle ore 22:54 acepilot111 < @.***> ha scritto:
Finally managed to get the watch re-connected to ADB on my computer and capture the attached log. While logcat was running I opened Strava on the watch, started a generic workout then let the screen go dark. Waited about 20 seconds or so, tapped the screen and saw the timer was at 40 seconds for the workout. Then let it go dark again, waited a bit, then ended the workout, tapped the finish button to save the workout, then ended the logcat.
Watch7StravaLog.txt https://github.com/user-attachments/files/16515634/Watch7StravaLog.txt
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2272133102, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWCVPSEUW5GLJ5AOOSTZQEZXHAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZSGEZTGMJQGI . You are receiving this because you were mentioned.Message ID: @.***>
ok @acepilot111 good news (at least from my side). The patch that I did seems to work perfectly on my fossil wear os. It works also when qz on the watch is not on foreground and of course even if the display is completely turned off. Let me know when you will try
wait i guess i saw the issue: after 3 minutes the watch is still getting the HR but it's not sending it anymore via bluetooth. Let me try to fix this as well
ok fixed @acepilot111 i hope it will work on yours too! version 1.1.4 on wearos
Just tested @cagnulein on watch 7, watch app immediately closes upon opening it. accepted one permission after installation. don't have time for more now, will look up how to get a log output from the watch later if i have time today.
ok unfortunately without having the same watch it's impossible to test this. on simulator and my watch works perfectly :(
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno mer 7 ago 2024 alle 23:04 bigdbag @.***> ha scritto:
Just tested @cagnulein https://github.com/cagnulein on watch 7, watch app immediately closes upon opening it. accepted one permission after installation. don't have time for more now, will look up how to get a log output from the watch later if i have time today.
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2274344727, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWA65A4UYJF54PQTULTZQKDWRAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZUGM2DINZSG4 . You are receiving this because you were mentioned.Message ID: @.***>
I just got 1.1.4 installed on my watch and can confirm bigdbag's experience is the same as mine. The app first asked for activity permissions, I allowed access and then the app just crashed. I thought the crash might have something to do with permissions since it never asked for sensor permissions, so I manually granted "While using app" permissions to sensors via settings, closed settings and re-opened the app, then it asked for "all the time" access to sensors so I granted access. And the app still just crashes when opened. I will try and get a log via ADB here in a few minutes.
Ok, thanks for the update. maybe it's something stupid. i'm going to bed. i will check the crash tomorrow if you can upload the log. thanks
Il giorno mer 7 ago 2024 alle 23:12 acepilot111 @.***> ha scritto:
I just got 1.1.4 installed on my watch and can confirm bigdbag's experience is the same as mine. The app first asked for activity permissions, I allowed access and then the app just crashed. I thought the crash might have something to do with permissions since it never asked for sensor permissions, so I manually granted "While using app" permissions to sensors via settings, closed settings and re-opened the app, then it asked for "all the time" access to sensors so I granted access. And the app still just crashes when opened. I will try and get a log via ADB here in a few minutes.
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2274356107, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWFNMIGHRFUNW6EVOTTZQKETHAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZUGM2TMMJQG4 . You are receiving this because you were mentioned.Message ID: @.***>
Managed to get adb to connect way easier than yesterday. Here is a log. I tried to open it 4 times while logcat was running. Hope there is something helpful in there.
ok perfect should be an easy one tomorrow
FATAL EXCEPTION: main
08-07 16:14:11.762 17807 17807 E AndroidRuntime: Process: org.cagnulen.qdomyoszwift, PID: 17807
08-07 16:14:11.762 17807 17807 E AndroidRuntime: java.lang.RuntimeException: Unable to start service org.cagnulen.qdomyoszwift.HeartRateService@123bc41 with Intent { cmp=org.cagnulen.qdomyoszwift/.HeartRateService }: android.app.MissingForegroundServiceTypeException: Starting FGS without a type callerApp=ProcessRecord{709d133 17807:org.cagnulen.qdomyoszwift/u0a205} targetSDK=34
08-07 16:14:11.762 17
indeed on my watch isn't required
@acepilot111 @bigdbag sent an update. let me know if it's better
Got 1.1.5 installed. Still crashing.
08-08 05:43:14.380 3969 3969 E AndroidRuntime: java.lang.RuntimeException: Unable to start service @.*** with Intent { cmp=org.cagnulen.qdomyoszwift/.HeartRateService (has extras) }: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{d00b171 3969:org.cagnulen.qdomyoszwift/u0a207} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory]
got it. let me tro fix this
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno gio 8 ago 2024 alle ore 12:45 acepilot111 < @.***> ha scritto:
Got 1.1.5 installed. Still crashing.
QZ Wear OS 08-08-24 0543 Log.txt https://github.com/user-attachments/files/16541845/QZ.Wear.OS.08-08-24.0543.Log.txt
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2275512197, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWFAYF7R3GWWPVSRZMLZQND3LAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZVGUYTEMJZG4 . You are receiving this because you were mentioned.Message ID: @.***>
Right below that one there is also a security exception...
08-08 05:43:13.120 3896 3896 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:895) 08-08 05:43:13.120 3896 3896 E AndroidRuntime: Caused by: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{9ac670e 3896:org.cagnulen.qdomyoszwift/u0a207} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] 08-08 05:43:13.120 3896 3896 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3195)
Probably the same thing for all I know, but I wanted to call it out just in case it give more clues.
1.1.6 pushed of course i can't test it myself, so i hope it will work out thanks for the feedbacks
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno gio 8 ago 2024 alle ore 12:50 acepilot111 < @.***> ha scritto:
Right below that one there is also a security exception...
08-08 05:43:13.120 3896 3896 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:895) 08-08 05:43:13.120 3896 3896 E AndroidRuntime: Caused by: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{9ac670e 3896:org.cagnulen.qdomyoszwift/u0a207} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] 08-08 05:43:13.120 3896 3896 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3195)
Probably the same thing for all I know, but I wanted to call it out just in case it give more clues.
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2275521926, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWFMSEKFDZOMKSKMSLDZQNEQLAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZVGUZDCOJSGY . You are receiving this because you were mentioned.Message ID: @.***>
Verified 1.1.6 is installed. Still crashing.
08-08 08:13:14.231 13740 13740 D AndroidRuntime: Shutting down VM 08-08 08:13:14.231 13740 13740 E AndroidRuntime: FATAL EXCEPTION: main 08-08 08:13:14.231 13740 13740 E AndroidRuntime: Process: org.cagnulen.qdomyoszwift, PID: 13740 08-08 08:13:14.231 13740 13740 E AndroidRuntime: java.lang.RuntimeException: Unable to start service org.cagnulen.qdomyoszwift.HeartRateService@123bc41 with Intent { cmp=org.cagnulen.qdomyoszwift/.HeartRateService (has extras) }: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{195f83 13740:org.cagnulen.qdomyoszwift/u0a210} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5134) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2466) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:256) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Looper.loop(Looper.java:341) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8695) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:895) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: Caused by: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{195f83 13740:org.cagnulen.qdomyoszwift/u0a210} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false[android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3195) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3179) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3162) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3104) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7123) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.Service.startForeground(Service.java:863) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at androidx.core.app.ServiceCompat$Api34Impl.startForeground(ServiceCompat.java:241) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at androidx.core.app.ServiceCompat.startForeground(ServiceCompat.java:172) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at org.cagnulen.qdomyoszwift.HeartRateService.onStartCommand(HeartRateService.kt:48) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5116) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: ... 9 more 08-08 08:13:14.231 13740 13740 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace: 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActiveServices.validateForegroundServiceType(ActiveServices.java:2872) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:2560) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1836) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:14688) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3570) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: 08-08 08:13:14.238 795 7266 V WindowManager: Relayout Window{ab79c4 u0 Splash Screen org.cagnulen.qdomyoszwift}: viewVisibility=8 req=480x480 ty=3 d0 08-08 08:13:14.239 1070 1070 W SysUI : [SecSysUiBaseActivity] onStop(256) > [SysUiActivity] before onStop(). 08-08 08:13:14.241 795 1386 D Debug : low && ship && 3rdparty app crash, do not dump 08-08 08:13:14.241 795 1386 W ActivityTaskManager: Force finishing activity org.cagnulen.qdomyoszwift/.MainActivity
Did you allow the new Bluetooth permission?
Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
Il giorno gio 8 ago 2024 alle 15:26 acepilot111 @.***> ha scritto:
Verified 1.1.6 is installed. Still crashing.
QZ Wear OS 08-08-24 0815.txt https://github.com/user-attachments/files/16548595/QZ.Wear.OS.08-08-24.0815.txt
08-08 08:13:14.231 13740 13740 D AndroidRuntime: Shutting down VM 08-08 08:13:14.231 13740 13740 E AndroidRuntime: FATAL EXCEPTION: main 08-08 08:13:14.231 13740 13740 E AndroidRuntime: Process: org.cagnulen.qdomyoszwift, PID: 13740 08-08 08:13:14.231 13740 13740 E AndroidRuntime: java.lang.RuntimeException: Unable to start service @.*** with Intent { cmp=org.cagnulen.qdomyoszwift/.HeartRateService (has extras) }: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{195f83 13740:org.cagnulen.qdomyoszwift/u0a210} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5134) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2466) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:256) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Looper.loop(Looper.java:341) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8695) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:895) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: Caused by: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{195f83 13740:org.cagnulen.qdomyoszwift/u0a210} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false[android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3195) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3179) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3162) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3104) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7123) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.Service.startForeground(Service.java:863) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at androidx.core.app.ServiceCompat$Api34Impl.startForeground(ServiceCompat.java:241) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at androidx.core.app.ServiceCompat.startForeground(ServiceCompat.java:172) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at org.cagnulen.qdomyoszwift.HeartRateService.onStartCommand(HeartRateService.kt:48) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5116) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: ... 9 more 08-08 08:13:14.231 13740 13740 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace: 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActiveServices.validateForegroundServiceType(ActiveServices.java:2872) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:2560) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1836) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:14688) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3570) 08-08 08:13:14.231 13740 13740 E AndroidRuntime: 08-08 08:13:14.238 795 7266 V WindowManager: Relayout Window{ab79c4 u0 Splash Screen org.cagnulen.qdomyoszwift}: viewVisibility=8 req=480x480 ty=3 d0 08-08 08:13:14.239 1070 1070 W SysUI : [SecSysUiBaseActivity] onStop(256)
[SysUiActivity] before onStop(). 08-08 08:13:14.241 795 1386 D Debug : low && ship && 3rdparty app crash, do not dump 08-08 08:13:14.241 795 1386 W ActivityTaskManager: Force finishing activity org.cagnulen.qdomyoszwift/.MainActivity
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2275823908, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWG6QTAL2KGDY4FLJK3ZQNWWZAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZVHAZDGOJQHA . You are receiving this because you were mentioned.Message ID: @.***>
@acepilot111 i just pushed a new one that should ask for the new permission before crashing. It should help. In the meantime, with the help of @bigdbag (thanks again!) I'm trying to put my hands on a Galaxy Watch too
Sorry I didn't mention it, but yes. On the 1.1.6 version I approved what the app asked for. It still didnt outright ask for sensor permissions from what I remember though. I manually allowed "when using app" via setting, then opened the app again and it asked for permissions again and then I selected "all the time". Then it crashed.
don't you have the enable also the nearby devices permission? it's a new one. anyway in this new version i forbidly asked. In the meantime i'm checking if there is something else left
On 1.1.6 it did explicitly ask for nearby device permission and I granted it.
ok so the adb log it's after it? it's so strange it says the also the bluetooth_connect (nearby devices is not selected). let me set all of them
@acepilot111 I just pushed the 1.1.8 with new permissions in the manifest, let's see if it helps. It's unbeliavable that with the official android tools i can't see this issue!
Got 1.1.8 installed. Good progress this time. Upon opening it asks for activity permission, then nearby device permission, then sensor permission. Then once the permissions are all approved it stays open and doesn't crash, but initially acts like it doesn't have sensor permissions with a pulse of 0. But if I hit the bottom button or swipe from left to right to "go back" something restarts and the app begins to show a pulse. It still didn't ask for sensor permissions a second time though for the user to easily grant all the time access. I still did it via settings after the fact and it did the same thing. Not sure if it is able to communicate with the phone app yet and I am not near a bike to test. Will try that this evening and report back.
In case you want it, here is a log of me opening the app for the first time, granting each permission, then manually granting all the time sensor permissions in settings and then swiping left to right in the app for it to show a pulse.
Awesome, thanks for the update! yes you should be able to communicate with the phone! i will check the log later today, just came back from my running session Let me know!
Il giorno gio 8 ago 2024 alle 20:03 acepilot111 @.***> ha scritto:
Got 1.1.8 installed. Good progress this time. Upon opening it asks for activity permission, then nearby device permission, then sensor permission. Then once the permissions are all approved it stays open and doesn't crash, but initially acts like it doesn't have sensor permissions with a pulse of
- But if I hit the bottom button or swipe from left to right to "go back" something restarts and the app begins to show a pulse. It still didn't ask for sensor permissions a second time though for the user to easily grant all the time access. I still did it via settings after the fact and it did the same thing. Not sure if it is able to communicate with the phone app yet and I am not near a bike to test. Will try that this evening and report back.
In case you want it, here is a log of me opening the app for the first time, granting each permission, then manually granting all the time sensor permissions in settings and then swiping left to right in the app for it to show a pulse.
QZ Wear OS 08-08-24 1253.txt https://github.com/user-attachments/files/16551775/QZ.Wear.OS.08-08-24.1253.txt
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/2489#issuecomment-2276378691, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWH4OLYGP54TGI7TZMDZQOXFPAVCNFSM6AAAAABLTE66OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZWGM3TQNRZGE . You are receiving this because you were mentioned.Message ID: @.***>
@acepilot111 if you want and you have time, you can also try without the bike, enabling the fake device in the experimental settings in QZ.
Ahh, that's good to know. Didn't know that was an option. Thank you for pointing that out.
Using that setting I performed a few tests and it seems to be working. First few tests it still seemed to have issues where the phone app stopped getting info from the watch app once the watch screen turned off. However, I then went to capture a log from both the phone and watch so you could get info from both ends, and it worked perfectly. The phone kept getting a pulse from the watch long after the screen turned off. So, we have at least one case where it worked completely as expected. Oh, and I did NOT grant all the time permissions for the sensors via settings on the successful test either. I cleared the app's data after the first few tests, opened it and only granted the permissions it asked for and that was when it worked perfectly. I will try to use it for a legit workout tomorrow morning and report back on if I have any issues or not.
Just in case you want the logs for the successful test, here is the phone app log: debug-Thu_Aug_8_13_51_55_2024.log
And here is the watch log: QZ Wear OS 08-08-24 1353.txt
Thank you again for being so diligent in helping get this to work. I haven't ever worked directly with an app developer before, but you set the bar really high. I am very impressed.
that's an amazing news! and I double your compliments to you because finding someone that can debug the issue in this way is not easy to find in the internet world :)
I'm really curious to know how the workout will go! Finger crossed!
Can confirm latest works. Granted all permissions it asked for. I didn't actually work out so I only know that it's been working for about 60 seconds. Will be spinning for around 2 hours tonight so I'll post back here if it stays alive and updated the entire ride!
@cagnulein should I still be setting the watch to always on display? That is necessary yes?
Describe the bug Wear OS app disconnecting
To Reproduce Steps to reproduce the behavior: Recently got a Galaxy Watch 7. Installed the QZ app on it so I can transmit my heart rate to the app on my phone. I can open the app and it auto starts and displays my heart rate. Then if I hurry I can open the app on my phone and it will auto connect to the bike and the app on my watch and properly display the HR in the app for a few seconds. However, once the watch screen turns off, the connection seems to break. The app on my phone displays whatever the HR was when the connection was lost.
One thing I noticed when installing it for the first time was it didnt ask for "all the time" level permissions. Only for while using the app. And I am unable to manually grant that level of permission to the app in the watch settings, at least that I could find. So, my guess is the OS is killing the app as soon as the screen auto turns off. I have also tried to turn on the setting that keeps the display on, but that didnt fix it either.
Expected behavior A clear and concise description of what you expected to happen.
Screenshots If applicable, add screenshots to help explain your problem. N/A
Desktop (please complete the following information):
Smartphone (please complete the following information):
Append a debug log I tried to capture this in the attached log, but not sure if HR or the connection gets logged. debug-Sun_Jul_28_17_16_24_2024.log
Additional context Add any other context about the problem here.