当前位置: 首页 > 科技观察

GooglePilex手机让用户无法拨打911

时间:2023-03-19 02:19:34 科技观察

11月底,Reddit用户KitchenPicture5849发帖称,搭载Android11的Pixel手机让他无法拨打911。救护车,但在拨打911后,“电话一响就卡住了,除了点击后台运行的紧急电话应用程序,我什么也做不了。”这种现象也可以重现。拨打电话五分钟后,紧急服务部门没有回应,也没有证据表明电话拨打了911——设备上的电话记录和运营商(Verizon)的通话记录都显示为空。12月8日,谷歌正面回应了这一问题,表示“该问题是由MicrosoftTeams应用程序与底层Android操作系统之间的意外交互引起的,我们将尽快修复此问题,并将于1月向Android生态系统报告4、提供Android平台更新”。令人不安和困惑的是,像MicrosoftTeams这样的第三方应用程序可能会干扰与紧急拨号一样重要的服务。几乎所有国家的法律都要求运营商将紧急呼叫路由到附近的紧急服务站点,这样即使移动设备没有SIM卡也可以拨打紧急电话。也就是说:在任何情况下都不应阻止手机拨打紧急电话。问题来源:PhoneAccounts随后,外媒medium的MishaalRahma对谷歌所谓的“MicrosoftTeams与Android底层的意外交互”进行了详细研究,发现事件发生在Android的底层PhoneAccounts实例上。程序会构建一个PhoneAccount实例,比如MicrosoftTeams应用,使用Skype后端进行语音通话,但是无法处理紧急呼叫,所以出现文章开头无法拨打911的问题。但如果单纯按照这个逻辑,那么所有安装了MicrosoftTeams的安卓手机都无法拨打911,但事实并非如此。通常,Android系统会按照“是否支持紧急呼叫”等标签对PhoneAccounts列表进行排序,选择优先级最高的PhoneAccounts实例并执行。那么问题的答案就揭晓了,MicrosoftTeams应用出现了PhoneAccount实例过度注册的错误。每当手机安装了MicrosoftTeams应用但尚未登录时,应用的每次冷启动都会创建另一个PhoneAccount实例。需要排序的PhoneAccount实例太多,导致Android的sortSimPhoneAccountsforEmergency紧急呼叫优先排序方法出现整数溢出/下溢错误,为紧急呼叫选择了错误的应用程序。12月10日,微软推出了Teams应用程序版本1416/1.0.0.2021194504。该版本解决了重复PhoneAccounts生成过多的问题,同时在第一次启动时调用TelecomManager的clearPhoneAccounts方法清除所有之前创建的PhoneAccounts。热心网友@linuxct开发了一个简单的开源应用程序,可以列出设备中所有的PhoneAccounts,并评估是否有应用程序过度注册了PhoneAccounts。目前可以在GitHub上下载。本文转自OSCHINA文章标题:谷歌Pilex手机阻止用户拨打911文章地址:https://www.oschina.net/news/173606/pixel-prevented-user-来自呼叫911