I didn’t know if I read this right, but are there cases where the app list would not be shared with other apps on the device, or does that require interference from Google?
“When an app targets Android 11 (API level 30) or higher and queries for information about the other apps that are installed on a device, the system filters this information by default. This filtering behavior means that your app can’t detect all the apps installed on a device, which helps minimize the potentially sensitive information that your app can access but doesn’t need to fulfill its use cases.”
You’re mostly right. Newer devices won’t share their entire app list by default, at compile time you need to enumerate every app you want to query for, or add what are essentially a list of intent filters (which are like “I want to talk to apps that take this kind of message and payload”). There is still a permission that lets you list all apps like you were able to on pre API 30 devices, but Google makes it pretty difficult to get onto the app store in that state.
You can still send intents as much as you like though (as long as you know the recipient), since they’re the basis for all inter-process communication.
My point is more that an app developer can’t and doesn’t need to use the play store to get the list of apps you have on your phone. This requirement to have the play store almost certainly isn’t malicious and I disagree with the notion that apps shouldn’t be able to use what is essentially system infrastructure to improve their apps. That said, given this is an app targeting the fediverse, it would have been nice for the developer to have made a universal APK build that didn’t require the Play Store.
I didn’t know if I read this right, but are there cases where the app list would not be shared with other apps on the device, or does that require interference from Google?
“When an app targets Android 11 (API level 30) or higher and queries for information about the other apps that are installed on a device, the system filters this information by default. This filtering behavior means that your app can’t detect all the apps installed on a device, which helps minimize the potentially sensitive information that your app can access but doesn’t need to fulfill its use cases.”
You’re mostly right. Newer devices won’t share their entire app list by default, at compile time you need to enumerate every app you want to query for, or add what are essentially a list of intent filters (which are like “I want to talk to apps that take this kind of message and payload”). There is still a permission that lets you list all apps like you were able to on pre API 30 devices, but Google makes it pretty difficult to get onto the app store in that state.
You can still send intents as much as you like though (as long as you know the recipient), since they’re the basis for all inter-process communication.
My point is more that an app developer can’t and doesn’t need to use the play store to get the list of apps you have on your phone. This requirement to have the play store almost certainly isn’t malicious and I disagree with the notion that apps shouldn’t be able to use what is essentially system infrastructure to improve their apps. That said, given this is an app targeting the fediverse, it would have been nice for the developer to have made a universal APK build that didn’t require the Play Store.
Ah, I see, thanks for the clarifying response!