黑名单来电自动静音(PhoneStateListener与AudioManager)
来源:互联网 发布:淘宝客的pid哪里看 编辑:程序博客网 时间:2024/05/16 10:12
这个范例主要说明,只要输入电话,系统自动帮助过滤电话,在这里,转换铃声模式使用setRingerMode做设置,正常模式为:RINGER_MODE_NORMAL,
而静音为RINGER_MODE_SILENT,震动模式为RINGER_MODE_VIBRATE.
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.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView mTextView01;
private TextView mTextView03;
private EditText mEditText1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置PhoneCallListener
mPhoneCallListener phoneListener=new mPhoneCallListener();
//设置TelephonyManager去抓取Telephony Service,获取相应的系统服务
TelephonyManager telMgr=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
//注册监听,设置监听的State
telMgr.listen(phoneListener, mPhoneCallListener.LISTEN_CALL_STATE);
mTextView01=(TextView)findViewById(R.id.tv1);
mTextView03=(TextView)findViewById(R.id.tv2);
mEditText1=(EditText)findViewById(R.id.et1);
}
/****
*判断PhoneStateListener现在的状态,继承PhoneStateListener类,我们可以重新其内部的
*的各种监听方法,然后通过手机状态改变时,系统自动触发这些方法来实现我们想要的功能
*/
public class mPhoneCallListener extends PhoneStateListener{
public void onCallStateChanged(int state,String incomingNumber){
switch(state){
//取得手机是待机状态
case TelephonyManager.CALL_STATE_IDLE:
mTextView01.setText(R.string.str_CALL_STATE_IDLE);
try{
AudioManager audioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
if(audioManager!=null){
//设置手机为待机时,响铃模式为正常
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManager.getStreamVolume(AudioManager.STREAM_RING);
}
}catch(Exception e){
mTextView01.setText(e.toString());
e.printStackTrace();
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK: //取得手机状态为通话中
mTextView01.setText(R.string.str_CALL_STATE_OFFHOOK);
break;
//取得手机状态为来电
case TelephonyManager.CALL_STATE_RINGING: //电话响铃状态
//显示来电的信息
mTextView01.setText(getResources().getText(R.string.str_CALL_STATE_RINGING)+incomingNumber);
//判断与输入电话是否为一样,当一样时响铃模式为静音
if(incomingNumber.equals(mTextView03.getText().toString())){
try{
AudioManager audioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
if(audioManager!=null){
//设置响铃模式为静音
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManager.getStreamVolume(AudioManager.STREAM_RING);
Toast.makeText(MainActivity.this, getString(R.string.str_msg), Toast.LENGTH_SHORT).show();
}
}catch(Exception e){
mTextView01.setText(e.toString());
e.printStackTrace();
break;
}
}
break;
}
super.onCallStateChanged(state,incomingNumber);
mEditText1.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
//设置在EditText里所输入的数据同步显示在TextView
mTextView03.setText(mEditText1.getText());
return false;
}
});
}
}
- 黑名单来电自动静音(PhoneStateListener与AudioManager)
- AudioManager黑名单来电自动静音
- 让Android手机黑名单来电实现自动静音
- 黑名单来电自动挂断
- 黑名单来电自动挂断
- Service-黑名单来电自动挂断
- 黑名单来电拦截自动挂断
- Service-黑名单来电自动挂断
- 举例说明如何在android中实现设置黑名单的功能--AudioManager、PhoneStateListener的使用
- Android开发之黑名单来电自动挂断
- Android黑名单自动挂断来电(AIDL)
- Android电话设置黑名单,来电自动挂断
- Android音量控制-AudioManager与来电振动
- 来电黑名单
- 监听手机来电PhoneStateListener
- 手机管理器之自动挂断黑名单的来电(六十四)
- java代码设置手机来电黑名单自动挂断
- android项目 之 来电管家(3) ----- 添加与删除黑名单
- ASP.NET 5系列教程 (三):view components介绍
- linux下动态库so文件的一些认识
- MFC实现2048游戏(一)
- 68MainActivity的消息回执
- 个人管理 - 我是这样偷着做架构的
- 黑名单来电自动静音(PhoneStateListener与AudioManager)
- 用CSS如何让节点宽度自动填满
- vs2010mfc下配置Halcon11
- ExtJs控件属性配置详细
- 微信公众平台开发教程第20篇-新手解惑40则
- LeetCode OJ 之 Sort Colors(颜色排序)
- 3097-小鑫爱数学
- Java中static关键字的使用
- Binary Tree Level Order Traversal II --- LeetCode