Android基于AudioManager、PhoneStateListener實(shí)現(xiàn)設(shè)置黑名單功能
本文實(shí)例講述了Android基于AudioManager、PhoneStateListener實(shí)現(xiàn)設(shè)置黑名單功能。分享給大家供大家參考,具體如下:
手機(jī)中一般有設(shè)置黑名單的功能。此例通過(guò)設(shè)置電話黑名單,當(dāng)黑名單中的電話打來(lái)時(shí),手機(jī)鈴聲為變成靜音。
程序代碼如下:
import android.app.Activity; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.view.KeyEvent; import android.view.View; import android.view.View.OnKeyListener; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class A11Activity extends Activity { private EditText et;//添加輸入框,輸入并設(shè)置黑名單 private TextView tv01,tv02; //tv01用來(lái)顯示EditText中輸入的黑名單;tv02用來(lái)顯示當(dāng)前手機(jī)電話所處的狀態(tài) /** Called when the activity is first created. */ @SuppressWarnings("static-access") @Override public void onCreate(Bundle savedInstanceState) { 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); /**創(chuàng)建PhoneCallListener的對(duì)象;其中PhoneCallListener是 * 擴(kuò)展了PhoneStateListener的類(lèi)*/ PhoneCallListener pcl=new PhoneCallListener(); TelephonyManager tm=(TelephonyManager)getSystemService(TELEPHONY_SERVICE); //設(shè)置監(jiān)聽(tīng)電話的功能 tm.listen(pcl, pcl.LISTEN_CALL_STATE); } public class PhoneCallListener extends PhoneStateListener{ public void onCallStateChanged(int state,String incomingNumber){ switch(state){ //手機(jī)狀態(tài)為待機(jī)時(shí),手機(jī)鈴聲為正常模式 case TelephonyManager.CALL_STATE_IDLE: tv02.setText("CALL_STATE_IDLE"); AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE); am.setMode(AudioManager.MODE_NORMAL); am.getStreamVolume(AudioManager.STREAM_RING); break; //手機(jī)狀態(tài)為通話中 case TelephonyManager.CALL_STATE_OFFHOOK: tv02.setText("CALL_STATE_OFFHOOK"); break; //手機(jī)模式為響鈴時(shí) case TelephonyManager.CALL_STATE_RINGING: tv02.setText("CALL_STATE_RINGING"); //當(dāng)來(lái)電號(hào)碼與黑名單中的電話號(hào)碼相同時(shí),設(shè)置電話鈴聲為靜音 if(incomingNumber.equals(tv01.getText().toString())){ AudioManager am01=(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(new OnKeyListener(){ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub tv01.setText(et.getText()); et.setText(""); return true; } }); } } }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android控件用法總結(jié)》及《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android DateUtil時(shí)間工具類(lèi)使用方法示例解析
這篇文章主要為大家介紹了Android DateUtil時(shí)間工具類(lèi)使用方法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Android傳遞Bitmap對(duì)象在兩個(gè)Activity之間
這篇文章主要介紹了Android傳遞Bitmap對(duì)象在兩個(gè)Activity之間的相關(guān)資料,需要的朋友可以參考下2016-01-01Android源代碼倉(cāng)庫(kù)及其管理工具Repo分析詳解
本篇文章主要介紹了Android源代碼倉(cāng)庫(kù)及其管理工具Repo分析詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01理解Android的手勢(shì)識(shí)別提高APP的用戶體驗(yàn)
對(duì)于觸摸屏,其原生的消息無(wú)非按下、抬起、移動(dòng)這幾種,我們只需要簡(jiǎn)單重載onTouch或者設(shè)置觸摸偵聽(tīng)器setOnTouchListener即可進(jìn)行處理2013-06-06Android自定義View實(shí)現(xiàn)數(shù)字密碼鎖
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)數(shù)字密碼鎖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解
這篇文章主要為大家介紹了Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Flutter學(xué)習(xí)之實(shí)現(xiàn)自定義themes詳解
一般情況下我們?cè)趂lutter中搭建的app基本上都是用的是MaterialApp這種設(shè)計(jì)模式,MaterialApp中為我們接下來(lái)使用的按鈕,菜單等提供了統(tǒng)一的樣式,那么這種樣式能不能進(jìn)行修改或者自定義呢?答案是肯定的,一起來(lái)看看吧2023-03-03