以下以测试耳机状态感知功能为例,说明如何进行应用测试。
执行测试代码获取当前设备的耳机状态是插入还是拔出。测试代码会创建耳机快照的Task,监听Task的成功或失败,成功则返回耳机的状态。“getStatus”返回值即耳机的状态:1为插入状态,0为拔出状态。失败则返回耳机状态“unknown”值为-1,请排除其他问题后重试。
1. 执行测试代码
- Awareness.getCaptureClient(this)
- .getHeadsetStatus()
- .addOnSuccessListener(headsetStatusResponse -> {
- HeadsetStatus headsetStatus = headsetStatusResponse.getHeadsetStatus();
- Log.i(TAG, "headsetStatus.getStatus()>>" + headsetStatus.getStatus());
- });
2. 验证测试结果
a. 未插入耳机时,执行测试代码,打印日志为“headsetStatus.getStatus()>>0”,测试通过。
b. 插入耳机时,执行测试代码,打印日志为“headsetStatus.getStatus()>>1”,测试通过。
c. 以上两个测试结果均通过,代表功能调用成功。
耳机状态情景感知围栏有3种:(1)判断从当前时间开始耳机插拔状态是否发生变化,(2)监听耳机插入,(3)监听耳机拔出。以测试第一种判断耳机状态否有发生变化的围栏为例。
1. 执行测试代码
- final String BARRIER_RECEIVER_ACTION = getApplication().getPackageName() + "HEADSET_BARRIER_RECEIVER_ACTION";
- Intent intent = new Intent(BARRIER_RECEIVER_ACTION);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- //1表示发送方的私有请求码
- AwarenessBarrier headsetBarrier = HeadsetBarrier.keeping(HeadsetStatus.CONNECTED);
- Awareness.getBarrierClient(this).updateBarriers(new BarrierUpdateRequest.Builder()
- .addBarrier ("HEADSET_BARRIER_KEY", headsetBarrier, pendingIntent).build())
- .addOnSuccessListener(aVoid -> {
- Log.i(TAG, "Barrier is started successfully!");
- })
- .addOnFailureListener(e -> {
- Log.i(TAG, "Barrier fails to be started!!\n"+ e.getLocalizedMessage()); });
2. 验证测试结果
执行以上代码,打印日志为“Barrier is started successfully!”表示围栏注册成功