Most of those buggy features are centered around things that shouldn't be possible anyway. On iOS, these apps would probably not even be available.
Call recording used to be easy to implement, until Google took a look at the obvious security problem with apps recording calls from the background, and restricted the normal APIs to system software only. If an app has automatic call recording that works well, the manufacturer probably put an insecure OS on the phone, because then any app or game you download probably has that capability.
The supported APIs all have excellent backwards compatibility through AndroidX. You can still many if not most modern APIs all the way back to Android 5 without much change in the code. Most system APIs are backported through Google's libraries, and for many others the standard compat library has shims that avoid most version checks. This is sort of the opposite of iOS, where most users are updated within a few months so many years of backwards compatibility isn't a big priority.
Cheap, slow, crappy devices and background task killers are much more of a problem than the problems plaguing a lot of the APIs.
>Most system APIs are backported through Google's libraries, and for many others the standard compat library has shims that avoid most version checks.
Just 6 months ago I took a small side project to port a web app to mobile and add some native functionality. I need to connect the user to a WiFi hotspot (industrial device controller) from code - the new APIs were absolutly not backwards compatible, the old APIs were just killed in Q, even worse the capabilites present in the old APIs (controlling WiFi networks) half wroked on older devices, depending on vendor (eg. not working on Samsung, working on a Pixel, etc.)
iOS didn't expose the level of controll straight up and I was able to explain to client that that's just not possible. We saw Android was all over the place in this regard, but because a competitor had a halfassed version that only worked on some devices the client insisted it was possible to implement this on Android. It took us a week to figure out that the whole thing is an unmanageable mess and demo to the client that the competitor is broken in so many scenarios and that we should just use the system UI like we do on the iOS.
>On iOS, these apps would probably not even be available.
See but I prefer this to Android "it's possible because we were wrong, now we leave it out there but you can't do it going forward". Why not just blacklist it in app store and prevent new apps from using it on review ? Also it's obvious they don't have any sort of certification testing for these APIs because they just straight out don't work on various vendors - they could easily mandate that to qualify for Google services on your device you need to implement system APIs and pass the test suite to solve these inconsistencies.
The problem with this entire mess is that there are things some trustworthy third party software needs to do, but are open to abuse by untrustworthy software using them for nefarious purposes.
In theory the answer to this is for the app reviewers to scrutinize any app using those capabilities to make sure it's not abusing them, but in practice the app approval process is actually kind of crap and doesn't do a good job of making those distinctions.
Your remaining alternatives are to prohibit that thing from happening whatsoever, which pisses people off, or to make it possible but a huge miserable ordeal, which pisses people off.
Google could make Android great. It has the resources and talent. Unfortunately, the organization is too dysfunctional to do it. The day Google starts focusing on its users will be a good day for humanity and for Google shareholders. I doubt it will ever happen.
I don't understand why call recording isn't a built-in features to all of the phone apps. I know the standard explanation is that it isn't legal in all locales, but there are plenty of illegal things you can do with your phone.
Exactly. And call recording app is pretty much like any other voice recording app, so it's not like the manufacturer is liable. And it's surely not their fucking business what I do with my phone.
Anyway, I used to rely on the call recording quite heavily, and I was really pissed off, when I discovered that it doesn't work anymore, so all my recent calls are lost. This was really awkward, because knowing my calls are recorded I stopped writing down appointments or ask to repeat something I didn't hear well, because I can just replay.
Without all that stuff there's really not much point using phone at all. Except most messengers and services require you having a phone number, which is absolutely ridiculous.
Just for the record, because I use this with literally every call I make - voip.ms (and presumably other providers) allows call recording by default. Recordings can be emailed to presumably any address, listened to directly on their site, or downloaded directly.
Assuming you port your number there, I've found Acrobits Softphone [0] to work exceptionally well; if the price tag is an issue, Android has built-in SIP software in the vanilla Android Calls app. Highly recommend their service, doubly so as it means I only need a data plan - meaning I only pay $15/month for calls, text, and (3GB) data, which is no mean feat in Canada!
I've always wondered if "this call may be recorded" messages could be legally interpreted as them giving you permission to record the call, since you-know, they told you it may be recorded.
There's also the part where it simply wasn't possible on many older SoCs to record calls[1]. Back then, there were apps that recorded calls using undocumented APIs available only on Qualcomm SoCs, and no one else had any call recording. Combined with legal problems around call recording, I guess nobody cared.
[1] My first android phone would get physically disconnected from microphone input by the modem during a call
It wouldn't even need to do that, it would just have to be off by default. Camera apps (including OEM ones - I know Samsung and Google both do this) frequently include the option to disable the shutter sound, with a message that disabling it may be illegal and you should check your local laws first.
I once got a call from a person threatening my life. I find it hard to justify not being able to record such a thing because of some strange hypothetical scenario about bad actors recording calls.
To be honest I can’t think of any scenario where recording your own calls would be bad. Can you give me a example?
Notification of the parties is key. You always have a good reason to record a phone call.
But, have you ever had a conversation on the phone that was difficult, not your best, or otherwise problematic? Have you ever said something that you would only say to one person?
The lower the barrier, the worse people’s behavior will manifest.
I am completely comfortable with having my phone announce to everyone that "your call may be recorded". In fact, add that to caller ID data or something: you dial me, you have to hit "I agree" before the call goes through. Would shut down a heck of a lot of behavior enabled by pseudoanonymous phone calls.
Call recording is only legal with single party consent in 2 states. Google voice allows recording incoming calls, but not outgoing.
1) Low demand
2) High impact of getting it wrong (untested legal consequences?)
3) lack of a good story. IE: why can't you track what was said in another method? Ie: paper note
Not exactly sure what you're referring to (what do "this" and "story" refer to?), but for example, for California, I think the relevant clause for the 'major threat' thing I mentioned is this:
(d) (1) Subdivision (a) does not apply to the disclosure or distribution of a confidential communication pursuant to any of the following:
A party to a confidential communication recording the communication for the purpose of obtaining evidence reasonably believed to relate to the commission by another party to the communication of a crime as specified in Section 633.5.
I remember that Trump tape where the governor taped, and released, the conversation to the public. Something like, "I need you to find 1300 votes in my favor."
It turns out that Georgia is one of those states. You can tape a person without their consent, and broadcast it?
Your comments about backward compatibility is not at all true. Even today making a simple podcasting app and keeping a crash free rate of over 99% is very very hard. Even while using the latest AndroidX libraries. And all the shiny new data modelling patterns that they seem to release every year. There are fundamental bugs in the implementation of the Fragment which is one of the most basic components of the Android Framework.
> If an app has automatic call recording that works well, the manufacturer probably put an insecure OS on the phone, because then any app or game you download probably has that capability.
I think that's a simplistic way to think of it, and assumes that there are only "apps" with exactly one privilege level. There are a multitude of things the OS could do to give a good user experience AND stay secure from random apps recording you.
Off the top of my head, how about: Apps can record you, but only by registering a special chunk of code that will be run with a special "tempfile" privilege, where the app doesn't know where the file is stored to. Then, once the call is over, if the app tries to access that file again, with normal privileges, the OS puts up a confirmation screen that says "Good news! App <Dave's Cool Pachinko Parlor> has recorded your last call. Do you want to keep or delete that recording?"
Call recording used to be easy to implement, until Google took a look at the obvious security problem with apps recording calls from the background, and restricted the normal APIs to system software only. If an app has automatic call recording that works well, the manufacturer probably put an insecure OS on the phone, because then any app or game you download probably has that capability.
The supported APIs all have excellent backwards compatibility through AndroidX. You can still many if not most modern APIs all the way back to Android 5 without much change in the code. Most system APIs are backported through Google's libraries, and for many others the standard compat library has shims that avoid most version checks. This is sort of the opposite of iOS, where most users are updated within a few months so many years of backwards compatibility isn't a big priority.
Cheap, slow, crappy devices and background task killers are much more of a problem than the problems plaguing a lot of the APIs.