目录

以下以测试耳机状态感知功能为例,说明如何进行应用测试。

Headset Capture API测试

执行测试代码获取当前设备的耳机状态是插入还是拔出。测试代码会创建耳机快照的Task,监听Task的成功或失败,成功则返回耳机的状态。“getStatus”返回值即耳机的状态:1为插入状态,0为拔出状态。失败则返回耳机状态“unknown”值为-1,请排除其他问题后重试。

1. 执行测试代码 

  1. Awareness.getCaptureClient(this)
  2.    .getHeadsetStatus()
  3.    .addOnSuccessListener(headsetStatusResponse -> {
  4.        HeadsetStatus headsetStatus = headsetStatusResponse.getHeadsetStatus();
  5.        Log.i(TAG, "headsetStatus.getStatus()>>" + headsetStatus.getStatus());
  6.    });

2. 验证测试结果

    a. 未插入耳机时,执行测试代码,打印日志为“headsetStatus.getStatus()>>0”,测试通过。

    b. 插入耳机时,执行测试代码,打印日志为“headsetStatus.getStatus()>>1”,测试通过。

    c. 以上两个测试结果均通过,代表功能调用成功。

Headset Barrier API测试

耳机状态情景感知围栏有3种:(1)判断从当前时间开始耳机插拔状态是否发生变化,(2)监听耳机插入,(3)监听耳机拔出。以测试第一种判断耳机状态否有发生变化的围栏为例。

1. 执行测试代码

  1. final String BARRIER_RECEIVER_ACTION = getApplication().getPackageName() + "HEADSET_BARRIER_RECEIVER_ACTION";
  2. Intent intent = new Intent(BARRIER_RECEIVER_ACTION);
  3. PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
  4. //1表示发送方的私有请求码
  5. AwarenessBarrier headsetBarrier = HeadsetBarrier.keeping(HeadsetStatus.CONNECTED);
  6. Awareness.getBarrierClient(this).updateBarriers(new BarrierUpdateRequest.Builder()
  7.    .addBarrier ("HEADSET_BARRIER_KEY", headsetBarrier, pendingIntent).build())
  8.    .addOnSuccessListener(aVoid -> {
  9.        Log.i(TAG, "Barrier is started successfully!");
  10.    })
  11.    .addOnFailureListener(e -> {
  12.        Log.i(TAG, "Barrier fails to be started!!\n"+ e.getLocalizedMessage());     });

2. 验证测试结果

执行以上代码,打印日志为“Barrier is started successfully!”表示围栏注册成功