首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 代码兑现来电拦截

2012-09-25 
Android 代码实现来电拦截为了更好地理解这个Demo,我先向大家介绍一下需求与功能。需求:每天都会有很多无聊

Android 代码实现来电拦截

为了更好地理解这个Demo,我先向大家介绍一下需求与功能。

需求:

每天都会有很多无聊的电话,比如推销商品等,占用我们大量时间不说,有时候还会打乱我们的思路,扰乱我们的正常生活。所以实现一个对某些号码(比如陌生号码,指定号码/黑名单等)进行拦截以避免受到骚扰,是很有现实用途的。

为了避免程序过分复杂,造成不易学习的麻烦我在这里只实现“如果来电号码没在联系人中,则进行挂断,并存入xml文件(SharedPreferences)中,并在首页显示”,以期达到抛砖引玉的效果。

其实在android在1.1版本后就已经把Phone类的相关API给隐藏起来了,想要用代码实现挂断电话的功能,就必须通过AIDL才行,然后利用反射来使用其方法。

第一步:在程序中新建一个包,包名必须为:com.android.internal.telephony,因为要使用aidl。

第二步:在这个包里面新建一个名为ITelephony.aidl的文件,然后在文件里面写入代码:

import java.util.Map;import android.app.ListActivity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.util.Log;import android.widget.ArrayAdapter;public class MainActivity extends ListActivity {@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                SharedPreferences phonenumSP = getSharedPreferences("in_phone_num", Context.MODE_PRIVATE);Map map = phonenumSP.getAll();        Object[] array = map.keySet().toArray();        Log.v("tag",map.toString()+map.size());        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,array);                setListAdapter(adapter);    }}

好了,整个项目就完成了,我们可以拦截骚扰电话了,这只是一个小例子,你可以添加一些控制功能以更加人性化,比如开启和关闭拦截,可选的拦截时间段等功能。

不过,这里只是完成了对来电的拦截功能,未对外拨电话进行拦截,下篇博客再写吧!

参考:http://blog.163.com/wu_zefeng/blog/static/1826291752011312114420975/

    http://www.cotrun.net/blog/1572.html


热点排行
Bad Request.