Android 如何通过Espresso检查拨号器上的电话号码-通过autoLink启动拨号器
我正在试着通过浓缩咖啡检查电话拨号器是否以正确的电话号码打开,但到目前为止还不能。 我试过:Android 如何通过Espresso检查拨号器上的电话号码-通过autoLink启动拨号器,android,android-intent,android-espresso,Android,Android Intent,Android Espresso,我正在试着通过浓缩咖啡检查电话拨号器是否以正确的电话号码打开,但到目前为止还不能。 我试过: Intents.init(); Intent stubIntent = new Intent(); Instrumentation.ActivityResult stubResult = new Instrumentation.ActivityResult(Activity.RESULT_OK, stubIntent); intending(hasAction(Inte
Intents.init();
Intent stubIntent = new Intent();
Instrumentation.ActivityResult stubResult = new Instrumentation.ActivityResult(Activity.RESULT_OK, stubIntent);
intending(hasAction(Intent.ACTION_DIAL)).respondWith(stubResult);
intended(Matchers.allOf(hasAction(Intent.ACTION_DIAL), hasData(Uri.parse("+3531234567"))));
而且
Intents.init();
intended(allOf(hasAction(Intent.ACTION_DIAL), hasData(Uri.parse("+3531234567"))));
拨号程序是通过“我的XML”文本视图上的自动链接触发的,如果这有任何帮助
android:autoLink="all"
那是用浓缩咖啡打开的拨号器
非常感谢。我认为您需要在电话号码前面加上电话前缀:,所以请尝试:
Uri.parse("tel:+3531234567")
它似乎真的不适用于autoLink,基于@Aaron的巨大帮助,这对我来说是有效的 1-从文本视图中删除自动链接 2-通常通过onclick侦听器触发意图
tvCallNumber.setText(phone); // phone = +3531234567
tvCallNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phone));
startActivity(intent);
}
});
3-确保电话号码前缀为“tel:”
4-测试动作的顺序正确
Intents.init();
Intent stubIntent = new Intent();
Instrumentation.ActivityResult stubResult = new Instrumentation.ActivityResult(Activity.RESULT_OK, stubIntent);
intending(hasAction(Intent.ACTION_DIAL)).respondWith(stubResult);
onView(withId(R.id.tv_call_number)).perform(click());
intended(Matchers.allOf(hasAction(Intent.ACTION_DIAL), hasData(Uri.parse("tel:+3531234567"))));
你好@Aaron,非常感谢你的回复。这是有道理的,我现在添加了它,并尝试使用这两种方法,但仍然没有得到一个成功的结果,我担心。电话号码来自网络电话,如果有帮助的话?再次感谢。再次尝试将“+3531234567”硬编码到我的文本视图,但仍然没有成功通过。是否有错误日志?我只是想看看它在期待什么,这里有东西。我认为它几乎起作用了。很快就会回复您。:)现在成功了!刚刚更新了它的步骤。它似乎真的不适用于autoLink,但它可以触发正常的意图操作。我认为你现在应该被正式提升为我的意式咖啡伙伴,这是你第三次帮我解决问题。非常感谢!!!:)