Android基于AudioManager、PhoneStateListener实现设置黑名单功能
本文实例讲述了Android基于AudioManager、PhoneStateListener实现设置黑名单功能。分享给大家供大家参考,具体如下:
手机中一般有设置黑名单的功能。此例通过设置电话黑名单,当黑名单中的电话打来时,手机铃声为变成静音。
程序代码如下:
importandroid.app.Activity; importandroid.content.Context; importandroid.media.AudioManager; importandroid.os.Bundle; importandroid.telephony.PhoneStateListener; importandroid.telephony.TelephonyManager; importandroid.view.KeyEvent; importandroid.view.View; importandroid.view.View.OnKeyListener; importandroid.widget.EditText; importandroid.widget.TextView; importandroid.widget.Toast; publicclassA11ActivityextendsActivity{ privateEditTextet;//添加输入框,输入并设置黑名单 privateTextViewtv01,tv02;//tv01用来显示EditText中输入的黑名单;tv02用来显示当前手机电话所处的状态 /**Calledwhentheactivityisfirstcreated.*/ @SuppressWarnings("static-access") @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); tv01=(TextView)findViewById(R.id.tv01); tv02=(TextView)findViewById(R.id.tv02); et=(EditText)findViewById(R.id.et); /**创建PhoneCallListener的对象;其中PhoneCallListener是 *扩展了PhoneStateListener的类*/ PhoneCallListenerpcl=newPhoneCallListener(); TelephonyManagertm=(TelephonyManager)getSystemService(TELEPHONY_SERVICE); //设置监听电话的功能 tm.listen(pcl,pcl.LISTEN_CALL_STATE); } publicclassPhoneCallListenerextendsPhoneStateListener{ publicvoidonCallStateChanged(intstate,StringincomingNumber){ switch(state){ //手机状态为待机时,手机铃声为正常模式 caseTelephonyManager.CALL_STATE_IDLE: tv02.setText("CALL_STATE_IDLE"); AudioManageram=(AudioManager)getSystemService(Context.AUDIO_SERVICE); am.setMode(AudioManager.MODE_NORMAL); am.getStreamVolume(AudioManager.STREAM_RING); break; //手机状态为通话中 caseTelephonyManager.CALL_STATE_OFFHOOK: tv02.setText("CALL_STATE_OFFHOOK"); break; //手机模式为响铃时 caseTelephonyManager.CALL_STATE_RINGING: tv02.setText("CALL_STATE_RINGING"); //当来电号码与黑名单中的电话号码相同时,设置电话铃声为静音 if(incomingNumber.equals(tv01.getText().toString())){ AudioManageram01=(AudioManager)getSystemService(AUDIO_SERVICE); am01.setRingerMode(AudioManager.RINGER_MODE_SILENT); am01.getStreamVolume(AudioManager.STREAM_RING); Toast.makeText(A11Activity.this,"黑名单中的电话静音!!",Toast.LENGTH_LONG).show(); } } super.onCallStateChanged(state,incomingNumber); et.setOnKeyListener(newOnKeyListener(){ @Override publicbooleanonKey(Viewv,intkeyCode,KeyEventevent){ //TODOAuto-generatedmethodstub tv01.setText(et.getText()); et.setText(""); returntrue; } }); } } }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》及《Android开发入门与进阶教程》
希望本文所述对大家Android程序设计有所帮助。