android - 从 Monkeyrunner 传递带有 Parcelable 对象的 Bundle

标签 android python jython android-intent monkeyrunner

在 Monkeyrunner 中开始 Activity 时,我试图在我的 extras 中传递一个 Parcelable 对象。脚本中的区域看起来像这样

user = FbUser() 
extraDic = {} 
extraDic['userName'] = 'Test' 
extraDic['userId'] = 'me' 
extraDic['userInfo'] = user 
d.startActivity(extras=extraDic, component=runComponent + postActivity) 

FbUser是我java项目中实现Parcelable的对象。项目的 bin 已正确添加到 Jython Monkeyrunner 脚本中的 sys.path 中。当我调试脚本时,它会正确创建 FbUser 对象,但是,当我在 LogCat 中打印出额外内容时,“userInfo”额外内容丢失了......这似乎是因为 JythonUtils 类只会翻译 PyString、PyFloat 和 PyInteger到字符串、 double 和整数,即使 MonkeyDevice 的文档声明您可以在 extras 字典中传递任何结构化数据类型。有没有人找到办法做到这一点?

最佳答案

我最近才遇到这个问题并阅读源代码发现不幸的是这是不可能的。

MonkeyDevice 实例将其工作委托(delegate)给 am command by adb - .您可能已经知道,am 能够从命令行接受的额外信息是 quite limited .事实上,它可以携带一个字符串、一个 bool 值或一个整数。

关于android - 从 Monkeyrunner 传递带有 Parcelable 对象的 Bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435283/

相关文章:

Python Flask 获取 404 未找到错误

mysql - Monkeyrunner/jython 中未找到 JDBC 驱动程序错误

java - 如何在PythonInterpreter(jython)中获取UTF-8阅读器?

python - 如何在Python中根据3个预定义列表(f'{list1}_{list2}_{lists} ')动态生成变量名称?

android - 使用 App Engine 项目更改 Android 的 "Annotation Processor Factory"的位置

android - 可折叠工具栏 - 使 fragment 页脚在 Android 中始终可见

android - 如何在构建服务器和工作站之间同步Gradle/Android版本代码

Python 附加 XML 子元素两次

python - 如何在 jython/python 中解析 getAttribute (jmx) 的输出

android - 我可以将 Google plus Sign In 添加为 android studio 中的模块吗?