Android从无知到有知——NO.6

紧随上一篇,说一下创建ip拨号器过程中出现的一些问题。

1)在一開始监听外拨电话的时候会报这样一个警告:

Permission Denial: receiving Intent { act=android.intent.action.NEW_OUTGOING_CALL flg=0x10000010 (has extras) } to com.heng.ipdail/.OutCall requires android.permission.PROCESS_OUTGOING_CALLS due to sender com.android.phone (uid 1001)

从大概意思上能够看出,要想实现监听功能我们须要一个监听外拨电话的权限。找到清单文件,增加下面权限:android.permission.PROCESS_OUTGOING_CALLS。再载入一下就没问题了。

2)不显示LogCat。这个问题是昨晚刚发现的。要查看日志发现窗体没了,于是找了下资料,在一片博客里找到了答案,流程是这种: Preferences->Android->LogCat     然后设置成VERBOSE,上图一张:

3)模拟器没有拨号功能。

这个比較郁闷,找了非常久都没找到。最后在短信里发现了拨号功能,但仅仅能拨打已存在的电话,可能是我的软件有问题。还望大神指点一二。

4)模拟器桥接断开。这个应该属于系统问题,我之前建了两个模拟器。这几天主要用的5554,但昨晚载入程序时总是挂到5556上,试了好几次都不行,然后问了下组长。说须要重新启动adb,先进入ddms(在windows中能找到。前边也说过这个),找到Threads,直接上图吧:

5)最后补充一下上一篇提到的监听类(OutCall)。它继承了BroadcastReceiver,实现了接收事件的功能,作为四大组件之中的一个。我们须要在清单文件里对其进行配置:

<!-- 定义了一个广播接受者 ,它关心的事件为“新的外拨电话”-->
        <receiver android:name=".OutCall">
            <intent-filter >
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>

这个定义是在application节点下的,首先指定名称(".OutCall),‘.‘代表当前包名;<intent-filter >为相应的意图过滤器,它通过指定action来设置当前监听器所关心的广播事件。我们用的是NEW_OUTGOING_CALL,当然还能够设置其它的关心事件,在本例中仅仅须要关心外拨电话就OK了。

时间: 2024-10-25 19:54:30

Android从无知到有知——NO.6的相关文章

Android从无知到有知——NO.8

上一篇中提到的自定义广播事件是无序发出的,这样所有的广播接受者都可以接收到这个事件,我们还可以使得广播以有序的方式发送出去,这个和前者类似: //如果广播事件是有序发出去的,广播接受者按优先级依次收到 sendOrderedBroadcast(intent, null); //在有序广播中,优先级高的接受者可以终止广播事件 这条语句和前边的无序发送类似,第一个参数是指定的"意图",第二个是需要添加的权限,这里可以先不用管.有序接收的原理就是优先级高的先接收,然后按优先级依次接收,我们需

Android从无知到有知——NO.3

昨天看了下几种常见的布局,类似于以前学的html,关于css+div没有接触太多,但这几种布局都比较简单,只要逻辑没有太大问题就能整出来. 相对布局是我们平时默认的布局,也是最常用的,前边做的"电话拨号器"和"短信发送器"都是用的它.这种布局强调控件之间的相对位置,比如利用id标称谁在谁的下边或者上边,通过空间的位置关系来定制整个UI.假设有两个控件,一个id为tv,另一个id为xc,要想使得xc在tv的下方,便可在xc里用这样一条语句----android:lay

Android从无知到有知——NO.1

如期而至的软件设计大赛吹响了重生的号角,正如同我们的指导老师所说,这个暑假会影响你近几年的发展,也可能会决定你以后所走的道路.是的,我身边就有很好的例子,有些师哥师姐们经常跟我们说,软件大赛不仅使他们学习到了很多专业知识,而且提升了他们的自学能力,而这正是我的软肋.所以,今年这个暑假有很多意义,不仅是为了弥补去年的遗憾,更多的是将自己的自学能力提升一个档次,顺便学点知识,之所以用"顺便"这个词是因为我这个人不能主观地去做某件事,越是看重越收获寥寥,所以就把它看成是一门副业,主业就是前者

Android从无知到有知——NO.2

这几天虽说偶遇瓶颈.但也渐入佳境.因为之前没有接触过android,所以作为一个新手不会给自己过高的要求.相比于去年做的分布式资源检索,今年的移动开发着实要简单一些.尽管其本质没有太大的差别,但从用户体验方面来说更能激发每一位学习者的兴趣,这可能就是android的魅力所在吧... 前天做的"电话拨号器",最后载入到模拟器的时候不知道哪里出了错,系统总是自己主动关闭,恼羞成怒也就没再搭理它.昨天又做了"短信发送器",也遇到了和前者相似的问题,只是最后经过调试算是研制

Android从无知到有知——NO.5

今天整一下利用广播实现ip拨号. 这一块主要用到的知识是android四大组件之中的一个的broadcast   receiver(广播接收者).那么它接收什么东东呢,就是我们所无谓的一个个的事件,比方有外拨电话,低电量提示.来短信等等. 那什么又是ip拨号呢,大家可能有这种印象,在拨打长途电话的时候号码前边会加上几位数字,这就是所谓的ip号,这样打电话比直接拨打会廉价一些.事实上ip拨号的原理非常easy,它就是利用前边说的broadcast   receiver监听到我们所拨打的号码,然后把

Android从无知到有知——NO.7

的ip拨号器在监听外拨电话时用的是系统提供的广播事件.而有些时候我们须要自己设定广播事件来满足特定的须要. Ok,今天整一下自己定义广播事件,我们用一个状态监測模块向一个3G模块发送报警信息来实现这一想法. 先定义一个3g模块用来接收特定的广播: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHori

Android从无知到有知——NO.4

因为我们做的是手机安全卫士,所以需要一个地图定位功能,昨天在百度谷歌上找了些相关的项目,也有一些教程,到百度官方下载了相关的jar包和API,但自己建项目的时候却不是那么顺利,bug不断,弄得心烦意乱,最后终于臣服,原谅我这个刚出道不久的菜鸟吧.不过有一些错误的确让我长了见识,以前都不知道有这么一回事,通过不断地前进,不断地出错,然后不断地学习,最后继续前进,这是一个良性循环. java.lang.nullpointerexception,这是新手经常遇到的一种异常--空指针异常.当时出现这个错

android精选源码,知乎阅读瀑布流loading弹窗扫描二维码简洁的MVP

Android知乎阅读与网易音乐功能源码 Android用瀑布流展示美女图片源码 一个简洁好看的loading弹窗 QRCode 扫描二维码.扫描条形码.相册获取图片后识别.生... 一个Android 轻量级简单易用的Log组件 android猎豹快切App源码 android金融VIP pad版 android智能图片裁剪框架源码 android移动网页浏览器源码 超级清晰易懂简洁的MVP

android 代码加载 已知文件名 的资源文件

Android开发中如果需要用到某个资源,直接使用R.drawable.**文件即可.但是如果一开始无法知道具体加载哪个资源文件,必须在程序中动态获取ID值并加载.而加载过程是使用文件名来加载的,方式如下: public static String RESOURCE_PATH = "android.resource://packagename/"; 假设存在一个名为content_icon的资源图片 public Uri getIconUri(String drawableName)