1

我正在尝试测试我的应用程序是否已正确启动 Android Dialer 应用程序。

根据我对单元测试和仪器的发现,我创建了这个测试:

public void testPerformOperation() throws Exception {
    Instrumentation.ActivityMonitor monitor = getInstrumentation().addMonitor("com.android.phone.Dialer", null, true);
    operationPerformer.performOperation("tel:111222333");
    Activity activity = monitor.waitForActivityWithTimeout(5000);
    assertNotNull(activity);
}

但这总是返回 AssertionFailedError。

我也尝试过设置 to 的第一个参数addMonitor()IntentFilter.create(Intent.ACTION_DIAL, "vnd.android.cursor.dir/calls")但这给了我同样的错误。此外,我一直在寻找其他要使用的 MimeType,但没有找到任何(看起来拨号器不使用 MimeType)。

我应该如何检查拨号程序是否已启动?

4

1 回答 1

0

检查您的活动是否正在运行

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        for (RunningServiceInfo act: manager
                .getRunningServices(Integer.MAX_VALUE)) {
            if (MyActivity.class.getName().equals(
                    act.service.getClassName())) {

                //do
                return true;
            }
        }
于 2014-12-06T10:41:08.743 回答