Din*_*dra 6 selenium automation android android-intent android-activity
我有两个Android应用程序(应用程序A,应用程序B),如下图所示.我想通过单击第一个应用程序A中的按钮来调用应用程序B,当应用程序B启动时,文本框将包含我想从应用程序A传递的文本.
**注意-
我可以访问应用程序A,因此我可以修改应用程序A的代码.我无法访问应用程序B.
我在Stackoverflow.com和其他网站上看过许多帖子,解释了将数据传递给第二个应用程序但我看到只有当你有权修改这两个类的代码时才有可能.在我的情况下,我无法访问应用程序2,它只是一个安装在我的手机上的APK.
我想像我们通过Selenium自动化网页一样实现,我们可以访问文本字段并在该文本字段中输入值.
应用B仅用于示例目的.它可以是任何具有文本框的应用程序.
其实我想自动化应用(广告应用程式B)与应用程序A.应用A的帮助下登录过程中有许多选择凭证的凭证,并从应用程序A将推出应用程序B并进入credentioal到登录界面申请B.**

希望我能够解释我的问题.如果需要更多输入,我可以解释一下.
你有2个选择:
应用程序B 期望输入(通过意图).然后你可以启动应用程序B并通过意图传递值:
intent.putExtra("Key", "Your data here");
Run Code Online (Sandbox Code Playgroud)
您需要知道应用程序B使用哪个密钥,否则您无法执行此操作.
应用程序B 不期望输入.这并不容易,并且需要根本访问手机:
通过INJECT_EVENTS权限,可以键入文本或向任何窗口发送点击.你可以这样做:
Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendKeyDownUpSync( KeyEvent.KEYCODE_B ); //send key B
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到更多这个主题.如果您需要帮助来编译您的应用程序,这两个链接将帮助您:如何使用系统权限,Android INJECT_EVENTS权限编译Android应用程序
我只是要提醒您,以便您可以在两个您可以控制的应用程序之间传递数据,那么您应该使用intent例如
intent.putExtra("MyData", "This is a data ");
Run Code Online (Sandbox Code Playgroud)
并在您的其他应用程序中使用它来获取此数据
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("MyData");
myText.setText(value);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |