首页 > 代码库 > Android开发之电话拨号器

Android开发之电话拨号器

1.布局文件代码如下:

  技术分享

    实现过程中,EditText提出警告the text field does not specify an inputType or a hint,原因是EditText控件需要定义inputType属性,其属性可以自行在网上查找,Android:inputType="number|phone"表示输入为数字或号码;还出现警告unexpected text found in layout file:"".然后我仔细地在layout文件中查找多余的""都没找到,最后ctrl+shift+F格局化文件后就可以看到多余的"".删除即可。

    2.Java代码如下:
  技术分享
    Intent表示意图类,是Android开发中的媒介,此处用于两个Activity之间传数据。Android系统自身拨号Activity对应的Androidmainfest.xml中有声明一些属性如下:
       技术分享
     故我们需要调用Android系统自身拨号Activity时必须保持中某些属性一致,这样经Filter过滤后才能匹配找到对应的Activity并调用启动。
    注:当我们在程序中需要启动例外的activity时,很多时候我们是使用的隐式调用,即我们不直接指定要跳转的Activity,而是为Intent提供一些相关的参数,让其自动去和AndroidManifest.xml中已有的Activity去匹配(此处采用startActivity()方法去实现该匹配过程),而IntentFilter(Intent 过滤器)在xml中有三個主要的参数:action,categary,data。对于隐式调用的intent,android默认给加上一个CATEGORY_DEFAULT,这样的话如果intent filter中没有android.intent.category.DEFAULT这个category的话,匹配测试就会失败。所以,如果你的 activity支持接收implicit intent的话就一定要在intent filter中加入android.intent.category.DEFAULT。

    例外情况是:android.intent.category.MAIN和android.intent.category.LAUNCHER的filter中没有必要加入android.intent.category.DEFAULT,当然加入也没有问题。

    3.在AndroidMainfest.xml中写入权限时出现<uses-permission> tag appears after <application>这种警告信息,原因是权限没有放在<application>之前。之所以要写入权限是因为将app安装到手机时需要获取手机Android系统的这一项权限,只有在app中写入了这个权限它才能顺利地在手机中安装运行。出现这个警告warining:"not targeting the latest version of Android;compatibility modest apply.consider testing and updating this version.consult the android.os.Build........是在提醒我们没有匹配使用最新的sdk版本,可能导致app在最新的系统上面无法利用最新的特性或功能,去掉这个警告的办法就是把uses-sdk标签中的android:targetSdkVersion属性改为你电脑上面最新的sdk版本,例如我的电脑上最新的sdk是android4.4,它的版本号是19,那么我应该写成“android:targetSdkVersion="19"”,这样就不会报错了。
    技术分享
    最后两个虚拟机通话效果:
    技术分享

Android开发之电话拨号器