Android基于AudioManager、PhoneStateListener實(shí)現(xiàn)設(shè)置黑名單功能
本文實(shí)例講述了Android基于AudioManager、PhoneStateListener實(shí)現(xiàn)設(shè)置黑名單功能。分享給大家供大家參考,具體如下:
手機(jī)中一般有設(shè)置黑名單的功能。此例通過設(shè)置電話黑名單,當(dāng)黑名單中的電話打來時(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用來顯示EditText中輸入的黑名單;tv02用來顯示當(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的類*/
PhoneCallListener pcl=new PhoneCallListener();
TelephonyManager tm=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
//設(shè)置監(jiān)聽電話的功能
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)來電號(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)容感興趣的讀者可查看本站專題:《Android控件用法總結(jié)》及《Android開發(fā)入門與進(jìn)階教程》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Flutter實(shí)現(xiàn)支付寶集五福手畫福字功能
支付寶一年一度的集五?;顒?dòng)又開始了,其中包含了一個(gè)功能就是手寫福字,還包括撤銷一筆,清除重寫,保存相冊(cè)等。本文將介紹如何使用Flutter實(shí)現(xiàn)這些功能,感興趣的可以了解一下2022-01-01
Android自定義wheelview實(shí)現(xiàn)滾動(dòng)日期選擇器
這篇文章主要為大家詳細(xì)介紹了Android自定義wheelview實(shí)現(xiàn)滾動(dòng)日期選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Android實(shí)現(xiàn)粒子中心擴(kuò)散動(dòng)畫效果
粒子動(dòng)畫效果相比其他動(dòng)畫來說是非常復(fù)雜了的,主要涉及三個(gè)方面,粒子初始化、粒子位移、粒子回收等問題,本篇將實(shí)現(xiàn)兩種動(dòng)畫效果,代碼基本相同,只是旋轉(zhuǎn)速度不一樣,需要的朋友可以參考下2024-02-02
kotlin實(shí)現(xiàn)強(qiáng)制下線功能
這篇文章主要為大家詳細(xì)介紹了kotlin實(shí)現(xiàn)強(qiáng)制下線功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Android仿微信雷達(dá)輻射搜索好友(邏輯清晰實(shí)現(xiàn)簡單)
仿微信雷達(dá)掃描,仿安卓微信、云播雷達(dá)掃描動(dòng)畫效果點(diǎn)擊中間的黑色圓圈開始掃描動(dòng)畫,再次點(diǎn)擊復(fù)位,需要這種效果的朋友可以自己下載看一下2016-02-02
Android對(duì)so進(jìn)行簡單hook思路解析
這篇文章主要為大家介紹了Android對(duì)so進(jìn)行簡單hook思路解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Android自定義豎直方向SeekBar多色進(jìn)度條
這篇文章主要介紹了Android自定義SeekBar實(shí)現(xiàn)多色豎直進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10

