我刚刚意识到,智能锁 API 不允许我在重构 Android 应用程序时将 Fragment 传递给 ResolvingResultCallbacks 对象。该 API 只允许我传递 Activity 作为上下文,这意味着我需要在 Activity 的 onActivityResult() 方法中处理凭证结果,而不是 Fragment 的。但在我们应用程序的当前设计中,我们希望 Fragment 处理智能锁逻辑。
以下是我的保存代码:
以下是我的保存代码:
Auth.CredentialsApi.save(mSmartLockApiClient, credential).setResultCallback(
new ResolvingResultCallbacks<Status>(mActivity, RC_CREDENTIALS_SAVE) {
@Override
public void onSuccess(Status status) {
mSmartLockSaveCallBack.onSuccess();
}
@Override
public void onUnresolvableFailure(Status status) {}
});
实际上,对于请求凭据,我遇到了同样的问题。API没有提供一种方法来传递片段以开始解析。但是我找到了一个解决方法:
if (status.hasResolution()) {
mFragment.startIntentSenderForResult(
status.getResolution().getIntentSender(),
RC_CREDENTIALS_READ,
null,
0,
0,
0,
null);
}