添加权限
<uses-permission
android:name="android.permission.READ_PHONE_STATE" />
private TextView mTextView01;
private TextView mTextView03;
private EditText mEditText1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_silent);
/* 设定PhoneCallListener */
MyPhoneCallListener phoneListener = new MyPhoneCallListener();
/* 设定TelephonyManager去抓取Telephony Severice */
TelephonyManager telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
/* 设定Listen Call */
telMgr.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
/* 设定找寻TextView、EditText */
mTextView01 = (TextView) findViewById(R.id.myTextView1);
mTextView03 = (TextView) findViewById(R.id.myTextView3);
mEditText1 = (EditText) findViewById(R.id.myEditText1);
mEditText1.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
mTextView03.setText(mEditText1.getText());
}
});
}
/* 判断PhoneStateListener现在的状态 */
public class MyPhoneCallListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
/* 判断手机目前是待机状态 */
case TelephonyManager.CALL_STATE_IDLE:
mTextView01.setText("手机目前是待机状态");
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("通话中");
break;
/* 判断状态为来电 */
case TelephonyManager.CALL_STATE_RINGING:
/* 显示现在来电的讯息 */
mTextView01.setText("来电:"
+ incomingNumber);
/* 判断与输入电话是否为一样,当一样时响铃模式转为静音 */
if (incomingNumber.equals(mTextView03.getText().toString())) {
try {
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
/* 设定响铃模式为静音 */
audioManager
.setRingerMode(AudioManager.RINGER_MODE_SILENT);
//audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);震动
audioManager
.getStreamVolume(AudioManager.STREAM_RING);
Toast.makeText(PhoneSilent.this,
"静音模式",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
mTextView01.setText(e.toString());
e.printStackTrace();
break;
}
}
}
super.onCallStateChanged(state, incomingNumber);
}
}
- 大小: 17.1 KB
分享到:
相关推荐
这个"android黑名单设置 来电自动静音"的主题,意味着我们可以通过编程方式实现一个功能,即当某个电话号码被列入黑名单时,其来电将会被自动静音。这涉及到Android的权限管理、电话拦截服务以及音频控制等多个方面...
//检查来电号码是否在黑名单中 if(isBlackList(incomingNumber)){ //如果在黑名单中,设置手机为静音模式 AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE); am.setMode(AudioManager.MODE_...
当电话状态改变时,该方法会被调用,我们可以在这里判断是否来电,并与黑名单进行对比。 黑名单管理通常是一个单独的Activity,如`BlacklistManageActivity`,用户可以在此添加、删除和编辑黑名单号码。数据通常...
如果在黑名单内,则通过`AudioManager`静音手机扬声器或挂断电话。 短信拦截则需要用到`BroadcastReceiver`。注册一个短信接收广播,监听`android.provider.Telephony.SMS_RECEIVED`意图。在`onReceive()`方法中,...
9. **优化用户体验**:为了让用户有更好的使用体验,可以添加设置界面让用户自行配置拦截规则,比如白名单、黑名单等。 以上就是Android来电拦截及拦截后播放提示音的基本实现原理和步骤。源码中应该包含了具体的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的...