目前,我正在使用安卓系统中的READ_PHONE_STATE权限,在有呼叫时暂停媒体播放器,并在呼叫结束时恢复播放。这一许可似乎吓到了很多人,所以我想知道,除了不接电话的情况下,是否还有别的选择。任何帮助都是非常感谢的。谢谢!
发布于 2014-06-24 15:57:42
如果您想要调整您的音频输出以响应其他想要执行音频输出的事情(例如,来电),请查看Android的音频焦点支持。正如前面提到的,READ_PHONE_STATE是一个有点吓人的许可。此外,它只处理电话,而不处理可能需要相同功能的其他事情(例如,VOIP呼叫,就像AFAIK不绑定到READ_PHONE_STATE-enabled的东西一样)。
发布于 2014-06-28 07:50:34
不幸的是,音频焦点不能替代READ_PHONE_STATE。我的应用程序必须同时使用。我的Galaxy 9300/Android4.3上的标准手机应用程序似乎根本不需要音频焦点。TelephonyManager类为您提供了一种检测电话呼叫结束的方法(通过发送CALL_STATE_IDLE状态更新)。AudioManager似乎没有做任何类似的事情,所以即使可以使用音频焦点,它也不会那么有用。而且,根据我在文档中所看到的,似乎没有比READ_PHONE_STATE更窄的权限,它允许应用程序读取电话状态,而不是通话信息。如果我错了,请纠正我。
发布于 2017-02-14 15:07:24
不幸的是,音频焦点不能替代READ_PHONE_STATE。我的应用程序必须同时使用。我的Galaxy 9300/Android4.3上的标准手机应用程序似乎根本不需要音频焦点。TelephonyManager类为您提供了一种检测电话呼叫结束的方法(通过发送CALL_STATE_IDLE状态更新)。AudioManager似乎没有做任何类似的事情,所以即使可以使用音频焦点,它也不会那么有用。而且,根据我在文档中所看到的,似乎没有比READ_PHONE_STATE更窄的权限,它允许应用程序读取电话状态,而不是通话信息。如果我错了,请纠正我。
https://stackoverflow.com/questions/24374701
复制相似问题