HBiSoft / HBRecorder

Lightweight screen recording Android library
MIT License
402 stars 137 forks source link

Android 33 - No permissions for android.permission.RECORD_AUDIO #135

Closed zackees closed 1 year ago

zackees commented 1 year ago

Downloaded and ran the latest HBRecorder software and the device will not work in API 33 due to No permissions for android.permission.RECORD_AUDIO

Turning off the checkmark for "Record Audio" doesn't change the behavior - the device still fails to run.

I am using the included example to try and run the device. I am using java 8. The device runs in Android <= 32 though.

image

HBiSoft commented 1 year ago

Hi @zackees

I updated the library yesterday, this caused issues with permissions. I updated the library again today, which fixed this issue.

Can you please confirm that you are using 3.0.1 and not 2.0.6?

HBiSoft commented 1 year ago

Closing until I hear back from you.

zackees commented 1 year ago

I was building from the github repo source, NOT including the library as a package from the package manager.

I will double check exactly what is going on now that it's morning here

HBiSoft commented 1 year ago

If you want you can test with the repo source again, I updated the demo app as well. The issue was with the demo application and not the library itself. It should be fixed now.

Please let me know after you have tested.

zackees commented 1 year ago

Thanks, I'll do it now

zackees commented 1 year ago

No, I have the latest code (same as last night, I tested right after you pushed changes and git pull brings in no changes this morning) and it still does it. This is the failure:

checkSelfPermission(Manifest.permission.RECORD_AUDIO, PERMISSION_REQ_ID_RECORD_AUDIO)

zackees commented 1 year ago

OS: Windows 10 Android Studio Electric Eeel, patch 2 Emulator is Pixel XL with API 33

zackees commented 1 year ago

I re-ordered the code a bit to split out the permissions, you can see that the RECORD_AUDIO permission is returned as false. There are no other changes to the repo.

image

zackees commented 1 year ago

See the following step through debugger for API 33 (note: I've updated the project locally to use gradle 7.5 but the step through appears exactly the same as the current remote head)

https://user-images.githubusercontent.com/6856673/223218294-322c0d0a-cb23-40d1-9610-1d907ad584fe.mp4

zackees commented 1 year ago

Now compare this to API 32, where it permissions for RECORD_AUDIO are granted very quickly.

https://user-images.githubusercontent.com/6856673/223219997-5a797635-a9b4-42bb-ab1d-749eb97d88a9.mp4

zackees commented 1 year ago

Have some coffee on me

image

HBiSoft commented 1 year ago

@zackees Thanks for the coffee and sorry for the late reply. I think our time zones are the complete opposite.

I have tested on multiple physical devices and I was not able to reproduce this. The devices I tested with are Samsung Note 20 Ultra, Samsung A51, and Samsung A13.

I also tested using the Nexus 5X emulator running API 33 and I was still not able to reproduce this. Emulator is running extremely slow on my computer, so I prefer testing on a physical device. I will try on the Pixel XL and get back to you. It's very strange that it's working on all of the devices I've tested with, but not on the Pixel XL...

I will do some further testing and get back to you as soon as I have an answer.

HBiSoft commented 1 year ago

@zackees I'm sorry but I'm not able to reproduce this issue on my side. I tried with a bunch of emulators, including Pixel XL, all running API 33, and all of them asked for audio permissions and none of them gave me the No permissions for android.permission.RECORD_AUDIO toast message.

The only thing I can recommend is to either uninstall the application and install it again, try another emulator, or the best option, test on an actual device.

This issue can not be device specific because it's related to android permissions and that is what is making me think that the problem must be with the emulator you are testing with, but I might be wrong.

If possible, test on an actual device and please let me know when you did.

zackees commented 1 year ago

Thanks for your attention.