I was talking with a guy the other day who drives for both Uber and Lyft. I asked him if either company ever took any steps to pressure him to drive exclusively for one company or the other. He said he’s not sure, but he relayed a story to about one time when it seemed to him that Uber was lying to him about how long it would be until his next fare, possibly to waste his time and punish him for running Lyft simultaneously.
He said that one day he was running both Lyft and Uber simultaneously on the same phone, which he does a lot. While he was waiting at an airport to pick up a rider, Uber reported to him that he was (I think) an estimated 2-5 minutes from receiving his next fare. The promised fare never came, and it continued to report that he was on the verge of a new fare for something like two hours. He finally shut off Uber and left the airport to pursue fares elsewhere. He thinks Uber was wasting his time to punish him for driving for Lyft too.
This could have been a glitch in Uber but I’m wondering if his scheme is even technically feasible. Could the Uber app know: (1) whether he even had Lyft installed on his phone, and (2) whether he had both Lyft and Uber running simultaneously? I don’t know what kind of phone he had, or whether it was an iPhone or Android.
On the iPhone, apps are heavily sandboxed. They get almost no ability to tell what else is going on in the phone, which is why exchanging data between apps generally requires active cooperation between the app developers of each app. You can list other running processes, but all you get are “anonymized” process ID numbers.
Android has sandboxing, too, but it’s a lot less absolute (which is why upwards of 95% of all software on Android contains or is malware by some definitions). In that case, you could get a list of the process names, as well, from which you could determine the other app is running, and possibly even mess with it, depending on user permissions.
If this were a real thing, you could probably figure out “tricks” (like contention for location services) that would give you a pretty good idea on either platform if a specific other type of app were running, and maybe even a specific app itself.
But it’s not a real thing. Such a “feature” would immediately get the app banned from Apple’s and Google’s app stores if discovered, and the developer certificate revoked. No way in hell Uber or Lyft would risk that; their market would fail overnight.
People are very self-centered and selfish these days. And these same people are making those apps.
With that said, nothing else exists in this world except their app! (Also they are no longer considerate of the people using those apps. They don’t take into account that someone else might want to use it differently. Don’t bother to take surveys or ask anyone for feedback. They don’t even bother to write instruction manuals. Sorry way things are heading if you ask me!)
On my Android phone. If I look at the permissions and capabilities of an app. It is disturbing how most of them can do anything they like with just about all the information and capabilities in my phone. That doesn’t mean they do. But it seems they can.
Thanks TimeWinder. That post is very informative. It seems you’re suggesting that the standpoint would make it hard for Uber to reliably know whether Lyft was running or installed. Is that correct?
I wondered about the permissions too. I assume that Uber and Lyft reserve tons of permissions to do almost anything on the phone. Could any of those permissions make it easy for one of the applications to detect the other?
On iOS, the app has to ask for the permissions it seeks individually and the user must explicitly accept those permissions individually. None of those permissions would allow an app to know anything about any other installed app.