apicloud apicloud

注册
查看: 525|回复: 3

[BUG] 关于其他三方sdk封装startActivityForResult无法取得回调问题

驾校小白

UID:491443

主题:
2
帖子:
3
云币:
5

[BUG] 关于其他三方sdk封装startActivityForResult无法取得回调问题

525 3 | 发表于 2021-6-13 03:41:11 |阅读模式 | |
首先,正常调用startActivityForResult方法是正常的,但是某些三方sdk,提供它自己封装好的方法,不允许你直接startActivityForResult的时候,则会取不到回调。
比如,华为扫码sdk:
ScanUtil.startScan(activity(), REQUEST_CODE_SCAN_ONE, options);
原生继承activity的窗体,可正常调用。
apicloud 继承UZModule 则无法取得回调,而它又不允许你自己startActivityForResult,参数已内部封装。


原因:UZModule 类implements ActivityResult 覆盖掉了系统自带的onActivityResult方法。
而这将导致所有自行封装startActivityForResult的sdk都无法得到回调,此处不应影响其他sdk或系统自带方法

主题:
17
帖子:
7224
云币:
5841
发表于 2021-6-15 11:12:02 |
UZModule下也有activity()函数。

驾校小白

UID:491443

主题:
2
帖子:
3
云币:
5
 楼主| 发表于 2021-6-18 21:13:31 |
常山赵子云 发表于 2021-6-15 11:12
UZModule下也有activity()函数。

被覆写了,你试一下

主题:
17
帖子:
7224
云币:
5841
发表于 2021-6-21 11:11:33 |
在你的代码里正常调用ScanUtil.startScan(activity(), REQUEST_CODE_SCAN_ONE, options);就行,会回调到模块的onActivityResult里。
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表