Android 如何编写使用内置摄像头拍照的Solo/Robotium测试用例?

Android 如何编写使用内置摄像头拍照的Solo/Robotium测试用例?,android,robotium,Android,Robotium,从我的活动中,我开始执行startActivityForResult(MediaStore.ACTION\u IMAGE\u CAPTURE), 然后我进入内置摄像头活动(在本例中为emulator) 当我现在这样做时: “独奏。点击按钮(0);” 在我的testcase中,它找不到任何按钮(对于index=0,找到null) 我如何编写一个使用内置摄像头拍照的Solo/Robotium测试用例?您想要实现的目标绝对是可行的。您正试图通过系统内置功能实现这一点。这里的问题是,用户需要拍照并确认它

从我的活动中,我开始执行startActivityForResult(MediaStore.ACTION\u IMAGE\u CAPTURE),
然后我进入内置摄像头活动(在本例中为emulator)

当我现在这样做时:
“独奏。点击按钮(0);”
在我的testcase中,它找不到任何按钮(对于index=0,找到null)


我如何编写一个使用内置摄像头拍照的Solo/Robotium测试用例?

您想要实现的目标绝对是可行的。您正试图通过系统内置功能实现这一点。这里的问题是,用户需要拍照并确认它是有效的。然后,结果(图像URL)将带回您的活动。所以,它不是机器人

另一种方法是利用安卓系统通过网络为您提供对摄像头的完全控制

android.hardware.Camera;
这无疑是一种要求更高的方法。但如果您使用Android安装中的现有示例作为指导原则

android-sdk-windows\samples\android-8\ApiDemos\src\com\example\android\apis\graphics\CameraPreview.java

这应该是可以实现的。不要忘记在清单中声明权限,如
摄像头
SDK文档中所述。

根据Robotium文档,您不能这样做,因为这跨越了两个应用程序(您的一个和默认摄像头活动)。看

您需要在包中编写自己的相机实现,或者编写两个测试应用程序

希望这有帮助:)

很抱歉撞到了这个

我刚把我制作/使用的相机存根放在游戏商店里。。。在自动测试中,您/其他人可能会想到这一点:)


澄清:摄像头活动只是另一个带有id/索引视图的活动。既然我回来了,也许我错了。我希望有人已经知道如何使用Robotium/solo在模拟器默认相机应用程序中单击一个按钮。它不应该像solo.clickOnButton(“完成”)或solo.clickOnButton(“确定”)那样吗?在手机上单击“完成”终止捕获。@Renas在对的评论中说,“只要活动属于同一个过程,它就一直在跨活动工作。”