通过Monkeyrunner传递包含Parcelable对象的Bundle

3

我正在尝试在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中打印extras时,“userInfo”extra缺失了...这似乎是因为JythonUtils类只会将PyString、PyFloat和PyInteger翻译成String、Double和Integer,即使MonkeyDevice文档表示您可以在extras字典中传递任何结构化数据类型。有没有人找到了解决这个问题的方法?

1个回答

1

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

MonkeyDevice实例将其工作委托给{{link1:am命令通过adb-}}。正如您可能已经知道的那样,am能够从命令行接受的额外信息{{link2:非常有限}}。实际上,它只能携带一个字符串、一个布尔值或一个整数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接