- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全球研发新技术研究中心 全球研发新技术研究中心 全球研发新技术研究中心 Android audio 相关问题小结 目录 Android 后台音乐播放问题 1. 在播放音乐时候,来电话如何在APP中正确处理 2. 在播放后台音乐时候,用户打开另外一个音乐软件,后台播放APP如何正确处理 目录 Android 在音乐播放时候,来电如何正确处理? 在使用酷狗,QQ音乐等音乐播放软件时候,我们发现来电的时候,音乐自动停止,通话完后恢复播放,这是怎么做到的? 目录 开发audio相关的应用程序的时候,我们希望能够监听电话的呼入,以便执行暂停音乐播放器等操作,当电话结束之后,再次恢复播放。在Android平台可以通过TelephonyManager和PhoneStateListener来完成此任务。 目录 TelephonyManager作为一个Service接口提供给用户查询电话相关的内容,比如IMEI,LineNumber1等。通过下面的代码即可获得TelephonyManager的实例 在Android平台中,PhoneStateListener是个很有用的监听器,用来监听电话的状态 public void onCallForwardingIndicatorChanged(boolean cfi)?public void?onCallStateChanged(int state, String incomingNumber)?public void onCellLocationChanged(CellLocation location)?public void onDataActivity(int direction)?public void onDataConnectionStateChanged(int state)?public void onMessageWaitingIndicatorChanged(boolean mwi)?public void onServiceStateChanged(ServiceState serviceState)?public void onSignalStrengthChanged(int asu)?,比如呼叫状态和连接服务等 这里我们只需要覆盖onCallStateChanged()方法即可监听呼叫状态。在TelephonyManager中定义了三种状态,分别是振铃(RINGING),摘机(OFFHOOK)和空闲(IDLE),我们通过state的值就知道现在的电话状态了。获得了TelephonyManager接口之后,调用listen()方法即可实现Android监听通话 目录 下面是个简单的测试例子,只是把呼叫状态追加到TextView之上 import android.telephony.PhoneStateListener;?import android.telephony.TelephonyManager;? public class Telephony extends Activity { private static final String TAG = Telephony; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TelephonyManager mTelephonyMgr = (TelephonyManager) this .getSystemService(Context.TELEPHONY_SERVICE); mTelephonyMgr.listen(new TeleListener(), PhoneStateListener.LISTEN_CALL_STATE); view = new TextView(this); view.setText(listen the state of phone\n); setContentView(view); } 目录 class TeleListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { super.onCallStateChanged(state, incomingNumber); switch (state) { case TelephonyManager.CALL_STATE_IDLE: { Log.e(TAG, CALL_STATE_IDLE); vie
文档评论(0)