老李分享:接电话扩展之uiautomator 2

主要的类就是上面的PhoneReceiver广播接收者。来电的时候,我们记录下电话号码,等该来电挂断以后,立即回拨给对方。配置文件如下:

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.tm"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="18" />

 

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

    <uses-permission android:name="android.permission.CALL_PHONE" />

 

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name="com.example.tm.MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

 

        <receiver android:name=".PhoneReceiver" >

            <intent-filter>

                <action android:name="android.intent.action.PHONE_STATE" />

                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />

            </intent-filter>

        </receiver>

    </application>

 

</manifest>

这样我们就让该总机做到了立即回拨的功能。

 

 

缺点

 

1.该总机的号码要写死在case里或者case的配置文件里。当总机号码更换以后,用到该号码的case也会变化。当然如果在框架里去实现的话,也很简单。设定一个总机号码配置文档,这样,每次启动uiautomator case的时候,涉及到telephony模块的case都去该文档上读一下该号码即可,当然这得需要框架。

2.相对于APP测试来说,一般是测当在使用APP的过程中来一个电话的处理方式。用上面的方法可能不太好,因为你不能操作的过程中跑去打个电话,太麻烦。但是像我这样测系统的就好多了,因为我会专门测试telephony的功能,这样我就把打电话和接电话一起测了。

 

posted @ 2016-01-08 16:25  北京茑萝信息  阅读(321)  评论(0编辑  收藏  举报