免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > Android手机来电防火墙的简单制作(2)

Android手机来电防火墙的简单制作(2)

时间:2012-01-03 18:14来源:未知 整理:寂涯网络 点击:


的复选框。然后点击窗口右面的Install按钮,安装ADT插件。
(7)安装完成后重新启动 eclipse,选择 Window > Preferences 菜单。Preferences 窗口
中若出现 Android项说明安装成功。
(8)在 Preferences窗口左面选择Android项,在右边的SDK Location输入框中输入SDK
的根目录,然后单击右下角的OK 按钮。至此开发环境基本搭建完成。
   为了测试编写好的程序,我们还需创建AVD。Android Virtural Device(android 模拟
器)在 android SDK 1.5版本后的 android开发中必须至少创建1 个 AVD。打开 eclipse,
按以下步骤创建AVD:
(1)选择Window > Android SDK and AVD Manager菜单。
(2)在打开的 Android SDK and AVD Manager 窗口左侧选择 Virtual Devices,然后点击
窗口右侧的New…按钮。
(3)在弹出的窗口中输入 AVD 的名字并选择需要的 Android 版本,然后点击 Create AVD
按钮。
(4)AVD创建成功并出现在列表中。
这样,整个 Windows下的 Android开发环境就搭建完成了,下面我们可以按照以下步骤来创
建一个工程: 
1. 打开 eclipse,选择File > New > Project菜单。
2. 选择 Android > Android Project,然后点击Next。
3. 在Content中选择 Project:
1)选择 Create new project in workspace以创建一个新的工程,键入工程的名字,
程序的名称,base package的名字,Activity class的名字来创建一个stub .java文件。
2)选择 Create project from existing source,可以从现有代码创建一个工程。通
过这种方式,你可以编译运行SDK 里面 sample中的应用程序。sample应用程序在 SDK 安装
目录下的 samples/中,找到包含有现有代码的路径并点击 OK。如果路径中含有一个有效的
Android 的manifest file,ADT插件就会加载包名,程序名,activity名。 
4. 点击 Finish,ADT 插件会根据工程的类型创建以下合适的文件夹和文件: 

src/文件夹(包含stub .java activity file )
res/文件夹 (包含资源文件 )
AndroidManifest.xml (工程的 manifest)
至此我们已经可以用eclipse来开发Android应用程序了。
开发一个手机来电防火墙,在技术上最主要有以下几个问题需要解决:
   1、监控手机来电状态。来电防火墙要能够快速捕获到来电信息,判断来电状态。在这
里就是要判断是否有电话打进来。可以通过使用电话服务(TelephonyManager)对象监听来
电状态。来电可分为三种状态:CALL_STATE_RINGING来电响铃,CALL_STATE_OFFHOOK摘机,
CALL_STATE_IDLE 挂机。我们可以在获得 CALL_STATE_RINGING 来电响铃状态时激活黑名单
判断和拒接来电。
2、获得来电号码。有电话进来之后,如何获取来电号码并与需要拒接的黑名单号码
比较,如是黑名单来电则挂断拒接,否则不做任何操作。
3、拒接来电功能。调用挂断电话的函数实现来电拒接的功能。这个看似简单只需调
用一个 API就能完成的功能,由于在Android1.1版本后 Google已经把该API隐藏掉,因此
实现起来还比较麻烦。需要通过AIDL(Android远程方法)调用隐藏API来实现。
要实现监控手机电话状态的功能,需用 PhoneStateListener 对象,创建对象的代码如
下:
创建完成 PhoneStateListener对象后,重写其中onCallStateChanged()方法,通过传
入的(state)状态判断来电状态。要取得手机电话状态,需要拥有读取电话状态的权限
(Android.permission.READ_PHONE_STATE),否则即使程序写好了也获取不到状态。此外,要
使用PhoneStateListener,在Activity onCreate()时,需取得系统中的TelephonyManager
服务“getSystemService(Context.TELEPHONY_SERVICE)”,通过 getSystemService 取得
TelephonyManager 对象,再向 TelephonyManager 注册 PhoneCallListener,注册时传入
PhoneCallListener 类及要监听的事件名称,因所监控的是电话状态,引入事件便是
LISTEN_CALL_STATE.在被重写的 onCallStateChanged()方法里,传入 state (状态)及电话
号码(incomingNumber)。在获得来电响铃中事件中,incomingNumber即为来电的电话号码。
该功能主要代码如下:
 TelephonyManager tm = (TelephonyManager) getSystemService
(Context.TELEPHONY_SERVICE);
MyPhoneCallListener myPhoneCallListener = new MyPhoneCallListener();
//  设置电话状态监听器
tm.listen(myPhoneCallListener, PhoneStateListener.LISTEN_CALL_STATE);
 
/* 新增的PhoneStateListener */

本页地址 http://www.jybase.net/biancheng/20120103739.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com