Android基于AudioManager、PhoneStateListener实现设置黑名单功能

本文实例讲述了Android基于AudioManager、PhoneStateListener实现设置黑名单功能。分享给大家供大家参考,具体如下:

手机中一般有设置黑名单的功能。此例通过设置电话黑名单,当黑名单中的电话打来时,手机铃声为变成静音。

程序代码如下:

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;//添加输入框,输入并设置黑名单
 private TextView tv01,tv02; //tv01用来显示EditText中输入的黑名单;tv02用来显示当前手机电话所处的状态
  /** 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);
    /**创建PhoneCallListener的对象;其中PhoneCallListener是
     * 扩展了PhoneStateListener的类*/
    PhoneCallListener pcl=new PhoneCallListener();
    TelephonyManager tm=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
    //设置监听电话的功能
    tm.listen(pcl, pcl.LISTEN_CALL_STATE);
  }
  public class PhoneCallListener extends PhoneStateListener{
   public void onCallStateChanged(int state,String incomingNumber){
   switch(state){
   //手机状态为待机时,手机铃声为正常模式
   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;
    //手机状态为通话中
   case TelephonyManager.CALL_STATE_OFFHOOK:
    tv02.setText("CALL_STATE_OFFHOOK");
    break;
    //手机模式为响铃时
   case TelephonyManager.CALL_STATE_RINGING:
    tv02.setText("CALL_STATE_RINGING");
    //当来电号码与黑名单中的电话号码相同时,设置电话铃声为静音
    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;
    }
    });
   }
  }
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》及《Android开发入门与进阶教程》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android项目实现黑名单拦截效果

    本文实例讲述了Android编程中黑名单的实现方法.分享给大家供大家参考,具体如下: 1,黑名单数据库创建 三个字段(_id 自增长字段 phone 黑名单号码 mode 拦截类型) 创建表的sql语句 create table blacknumber (_id integer primary key autoincrement , phone varchar(20), mode varchar(5)); 结合项目,去创建数据库,以及相应的表 2.BlackNumberDao BlackNumb

  • Android编程中黑名单的实现方法

    本文实例讲述了Android编程中黑名单的实现方法.分享给大家供大家参考,具体如下: 说明:由于挂断电话android   api不是对外开放的,所以需要使用反射的方法得到拨打电话的服务. 1.将android源代码中的"aidl"文件拷贝到项目中 这样项目中会生成两个包:android.telephony:此包中文件为:NeighboringCellInfo.aidl com.android.internal.telephony;此包中文件为:ITelephony.aidl 2.通过

  • Android基于AudioManager、PhoneStateListener实现设置黑名单功能

    本文实例讲述了Android基于AudioManager.PhoneStateListener实现设置黑名单功能.分享给大家供大家参考,具体如下: 手机中一般有设置黑名单的功能.此例通过设置电话黑名单,当黑名单中的电话打来时,手机铃声为变成静音. 程序代码如下: import android.app.Activity; import android.content.Context; import android.media.AudioManager; import android.os.Bund

  • Android基于自带的DownloadManager实现下载功能示例

    本文实例讲述了Android基于自带的DownloadManager实现下载功能.分享给大家供大家参考,具体如下: DownloadManager.Request request = new DownloadManager.Request(Uri.parse(APK_URL)); request.setDestinationInExternalPublicDir(DOWNLOAD_FOLDER_NAME, DOWNLOAD_FILE_NAME); request.setTitle(getStri

  • php实现ip白名单黑名单功能

    这个是一个检测ip是否非法的php函数,适应于白名单,黑名单功能开发,主要场景应用于:api来源限制,访问限制等. 复制代码 代码如下: /**  * 安全IP检测,支持IP段检测  * @param string $ip 要检测的IP  * @param string|array $ips  白名单IP或者黑名单IP  * @return boolean true 在白名单或者黑名单中,否则不在  */ function is_safe_ip($ip="",$ips="&q

  • Golang+Android基于HttpURLConnection实现的文件上传功能示例

    本文实例讲述了Golang+Android基于HttpURLConnection实现的文件上传功能.分享给大家供大家参考,具体如下: 这里要演示的是使用Android程序作为客户端(使用HttpURLConnection访问网络),Golang程序作为服务器端,实现文件上传. 客户端代码: public static String uploadFile(String uploadUrl, String filePath) { Log.v(TAG, "url:" + uploadUrl)

  • 网站如何通过nginx设置黑/白名单IP限制及国家城市IP访问限制

    目录 一.黑/白名单IP限制访问配置 1.第一种方法:allow.deny 2:第二种方法,ngx_http_geo_module 3.ngx_http_geo_module 负载均衡(扩展) 二.国家地区IP限制访问 1:安装ngx_http_geoip_module模块 2.下载 IP 数据库 3.配置nginx 总结 一.黑/白名单IP限制访问配置 nginx配置黑白名单有好几种方式,这里只介绍常用的两种方法. 1.第一种方法:allow.deny deny和allow指令属于ngx_ht

  • Android基于TextView属性android:ellipsize实现跑马灯效果的方法

    本文实例讲述了Android基于TextView属性android:ellipsize实现跑马灯效果的方法.分享给大家供大家参考,具体如下: Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须超出TextView大小 3.TextView要获得焦点才能滚动 XML代码: android:ellipsize="marquee", andro

  • Android基于广播事件机制实现简单定时提醒功能代码

    本文实例讲述了Android基于广播事件机制实现简单定时提醒功能代码.分享给大家供大家参考,具体如下: 1.Android广播事件机制 Android的广播事件处理类似于普通的事件处理.不同之处在于,后者是靠点击按钮这样的组件行为来触发,而前者是通过构建Intent对象,使用sentBroadcast()方法来发起一个系统级别的事件广播来传递信息.广播事件的接收是通过定义一个继承Broadcast Receiver的类实现的,继承该类后覆盖其onReceive()方法,在该方法中响应事件.And

  • Android 基于百度语音的语音交互功能(推荐)

    项目里面用到了语音唤醒功能,前面一直在用讯飞的语音识别,本来打算也是直接用讯飞的语音唤醒,但是讯飞的语音唤醒要收费,试用版只有35天有效期.只好改用百度语音,百度语音所有功能免费,功能也比较简单实用,包括语音识别,语音合成和语音唤醒,正好可以组成一套完整的语音交互功能. 效果图: 首先是语音唤醒功能,说出关键词即可叫语音识别,唤醒成功会有语音提示,这里采用了百度语音的合成功能.然后百度语音识别会根据wifi情况自动切换在线或者离线识别,但是离线识别只能识别已经导入的关键词,而且离线第一次识别需要

  • Android基于Pull方式解析xml的方法详解

    本文实例讲述了Android基于Pull方式解析xml的方法.分享给大家供大家参考,具体如下: Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌入了Pull,所以我们不需要再添加第三方jar包来支持Pull. Pull解析和Sax解析不一样的地方有: (1)pull读取xml文件后触发相应的事件调用方法返回的是数字 (2)pull可以在程序中控制想解析到哪里就可以停止解析. 来看看实例: book.xml如下: <?xml version="1.0"

  • Android基于Http协议实现文件上传功能的方法

    本文实例讲述了Android基于Http协议实现文件上传功能的方法.分享给大家供大家参考,具体如下: 注意一般使用Http协议上传的文件都比较小,一般是小于2M 这里示例是上传一个小的MP3文件 1.主Activity:MainActivity.java public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private EditText timel

随机推荐