【问题标题】:Appium : How to launch app from Android For Work work profileAppium:如何从 Android For Work 工作配置文件启动应用程序
【发布时间】:2017-09-06 18:15:45
【问题描述】:

我需要启动一个位于不同工作配置文件 (Android For Work) 中的应用。如果在个人资料中安装该应用程序,那么我可以从同一设备上的个人资料中启动该应用程序。

但是,当我只在工作资料中安装应用程序时,我无法通过 adb 命令启动应用程序

据我了解,谷歌为个人资料和工作资料保留了两个不同的容器。我认为工作资料有不同的空间,adb 无权访问该应用程序和工作资料的工作区。

我需要通过appium启动应用

如果有人对上述问题有答案,请回答。提前致谢!

【问题讨论】:

  • 个人资料和工作资料是什么意思?

标签: android automation appium ui-automation


【解决方案1】:

您的意思是在不同的用户帐户上启动应用程序吗?请检查此链接:https://stackoverflow.com/a/24093533/5093606 您可以尝试使用

获取帐户列表
adb shell pm list users

如果您的工作帐户在那里,请尝试

adb shell am start --user WORKING_ACCOUNT com.example.MainActivity

【讨论】:

  • 感谢您的回答。我需要通过 appium 启动应用程序。有什么方法可以在 appium 功能中提及用户详细信息?
  • @Vinod 我从未使用过 appium,但我认为可以在那里使用 adb 操作。看看this项目,也许对你有帮助
  • 看来我需要根据我的要求修改源代码并再次编译。无论如何感谢您的建议。 :)
【解决方案2】:

是的,可以使用 Appium/Adb 命令启动应用程序。使用 adb 命令代替 appium 来启动应用程序。

您用于 AndroidForWork 注册的应用程序,它应该处于 android:debuggable 模式。将可调试模式设置为 true 并构建 apk。

一旦设备注册/配置 Android 用于工作,然后获取用户列表。

adb shell pm list users UserInfo{0:Drew:13} running UserInfo{10:Work profile:30} running

获取工作资料用户 ID。在这种情况下,10 是 id。使用用户 ID 启动应用程序。

adb shell am start --user 10 -n "com.android.vending/com.google.android.finsky.activities.MainActivity"

注意:如果配置应用未在调试模式下启用,则您无权访问工作资料用户。

【讨论】:

  • 你应该发表评论而不是回答!
  • 我没有声望点来添加评论:(因此我在这里添加了。如果您对此有任何答案,请告诉我。
  • @oikonomopo 而且您不应该编辑不是答案的帖子。 :) 通常的做法是投反对票,最重要的是,将其标记为 NAA,以便最终将其删除。
  • @Eric Aya 我明白你的意思,但我们应该对新用户采取更受欢迎的行为!我们应该关心帮助/指导等,而不是威胁他们!
  • @user3496995 我同意该网站应该更欢迎新用户,但网站规则仍然非常明确,回答部分只能用于实际尝试回答问题。我们不能仅仅因为您还没有足够的声誉来发表评论而破例。
【解决方案3】:

事实证明,我可以通过向检查器添加另一个参数来使用 Appium Desktop 完成此操作:

optionalIntentArguments 文本 --user 12

“12”是您在输入以下内容时看到的工作资料 ID:

adb -d shell pm list users
Users:
    UserInfo{0:Ken Corey:13} running
    UserInfo{12:Workspace:50100030} running

【讨论】:

  • 我可以知道 optionalIntentArguments 之后的“文本”是做什么用的吗?
猜你喜欢
  • 1970-01-01
  • 2022-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 2018-05-19
  • 1970-01-01
相关资源
最近更新 更多