广播接收器在Android系统中应用非常广泛,例如拨打长途电话时使用的IP拨号器,就是通过广播接收器实现的。当拨打长途电话时,广播接收器就会监听到这个广播事件,自动在电话号码前面加几位数字,例如17911、17951等。下面来实现这个IP拨号器。
图12-3 IP拨号器
(1)创建程序
创建一个名称为“IP拨号器”的应用程序,将包名修改为“com.example.ipdail”。设计用户交互界面,具体如图12-3所示。
IP拨号器程序对应的布局文件(activity_main.xml)如下所示:
上述代码中定义了一个相对布局,然后在该布局中放置两个控件EditText和Button,分别用于输入IP号码和设置IP号码,为Button按钮设置onClick属性为click,用于设置点击事件。
(2)编写界面交互代码
在MainActivity中编写与页面交互的代码,用于实现IP号码的设置并将号码保存到SharedPreferences对象,具体代码如下:
上述代码分别初始化了EditText对象和SharedPreferences对象,然后创建IP拨号按钮的点击事件。当用户单击“设置IP号码”按钮时,系统将用户输入的IP号码保存到SharedPreferences对象中。(www.daowen.com)
(3)运行程序设置IP号码
设置IP号码的功能已经开发完成,下面运行程序并对其进行测试。首先将IP号码设置为17951,然后单击“设置IP号码”按钮,此时会弹出Toast显示设置成功,如图12-4所示。
图12-4 设置IP号码
(4)监听广播事件
为了让IP拨号器起作用,需要再创建一个广播接收器接收外拨电话的广播。广播接收器OutCallReceiver的代码如下:
上述代码中,在onReceive()方法中取出了保存在SharedPreferences中的数据并使用setResultData()函数显示在手机拨号器界面上。
创建完广播接收器之后,需要进行注册,注册代码如下:
上述代码对OutCallReceiver进行了注册,监听系统拨打电话的广播"android.intent.action.NEW_OUTGOING_CALL"。这样当手机向外拨打电话时,OutCallReceiver就能接收到广播。由于外拨电话的广播也侵犯了用户隐私信息,因此需要在配置清单中配置权限信息,具体代码如下:
至此,IP拨号器的程序就完成了,下面对IP拨号器进行程序测试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。