广播接收器在Android 系统中应用非常广泛,例如拨打长途电话时使用的IP 拨号器,就是通过广播接收器实现的。 当拨打长途电话时,广播接收器就会监听到这个广播事件,自动在电话号码前面加几位数字,例如17911、17951等。 下面来实现这个IP 拨号器。
(1)创建程序
创建一个名称为“IP 拨号器”的应用程序,将包名修改为“com. example. ipdail”。 设计用户交互界面,具体如图12-3所示。
IP 拨号器程序对应的布局文件(activity_main. xml)如下所示:
图12-3 IP 拨号器
上述代码中定义了一个相对布局,然后在该布局中放置两个控件EditText 和Button,分别用于输入IP 号码和设置IP 号码,为Button 按钮设置onClick 属性为click,用于设置点击事件。
(2)编写界面交互代码
在MainActivity 中编写与页面交互的代码,用于实现IP 号码的设置并将号码保存到SharedPreferences 对象,具体代码如下:
上述代码分别初始化了EditText 对象和SharedPreferences 对象,然后创建IP 拨号按钮的点击事件。 当用户单击“设置IP 号码”按钮时,系统将用户输入的IP 号码保存到SharedPreferences 对象中。(www.xing528.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 拨号器进行程序测试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。