woheller69 / audio-analyzer-for-android

A fork of audio-analyzer-for-android in Google code, with a lot of enhancement.
Apache License 2.0
197 stars 13 forks source link

Android 13 Import #15

Closed mroles29 closed 1 year ago

mroles29 commented 1 year ago

Using Android 13 TQ3A.230705.001.A1 (Pixel 6xl)

I'm not Android developer, so I hope I can describe this correctly. When attempting to import a calibration file, I am given the error to install a file manager.

Seems to be an issue with the ACTION_GET_CONTENT. There are no app permissions requested or available, as seems to be the case for Android 13 now.

As an example, https://github.com/OpenTracksApp also has an import feature, but it uses ACTION_OPEN_DOCUMENT_TREE. That correctly opens the "file manager" and for me to select a file.

Sadly, I do not have the depth to know why one works and the other does not... I suppose it is possible that my phone is bugged as well. Hopefully, there is something useful here for you to fix. Thanks

woheller69 commented 1 year ago

on my Android13 device I have no problem loading a calibration file File manager opens, I select a file and the calibration line is shown in the plot...

woheller69 commented 1 year ago

maybe install another file manager app

mroles29 commented 1 year ago

Google phones have newer builds and no 3rd party file managers. Is your device the same? Not sure if Samsung still uses their own file managers.

I gave removing my 3rd party app manager a shot. Did nothing. I believe Android 13 doesn't pass to an outside app manager anyway. It uses Files by Google, which is a system app. So I can't remove that anyway.

I'll try to find another app that uses the get content intent to see if there is something messy with my app permissions, but I already removed and erased cache etc for anything related. I may just be bored enough to do a device reset tomorrow.

Either way, if its Google's problem its not yours... I just wondered if there was something specific about your implementation. Thanks for your response.

woheller69 commented 1 year ago

and according to development guidelines it is still tge correct way to use ACTION_GET_CONTENT

Use ACTION_GET_CONTENT if you want your app to read or import data. With this approach, the app imports a copy of the 
data, such as an image file.
mroles29 commented 1 year ago

A little digging and I found another bug report from a totally different app and a different usage. Seems related to intent.resolveActivity(getPackageManager()) != null not working specifically on Pixel devices.

See https://github.com/react-native-image-picker/react-native-image-picker/issues/1587

Your call on if you want to cater to the specific device and its issues.

mroles29 commented 1 year ago

I hate myself for doing this at 2 am. I found that adding a query to the app manifest fixes my issue. `

</queries>

` However, now I realized that I can't record a file either. That appears to be due to the depreciation of the android.permission.WRITE_EXTERNAL_STORAGE in SDK 33.

New process is https://goo.gle/android-mediastore-createwriterequest

woheller69 commented 1 year ago

Please try this.

-Uninstall -Remove .zip and install

audioSpectrumAnalyzer-release.apk.zip

mroles29 commented 1 year ago

That fixed both issues.