Android アプリのリファクタリングを行っているときに、smartlock API では Fragment を ResolvingResultCallbacks オブジェクトに渡すことができないことに気付きました。
API では、Activity をコンテキストとして渡すことしかできません。つまり、Fragment ではなく、Activity の onActivityResult() メソッドで資格情報の結果を処理する必要があります。しかし、アプリの現在の設計では、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);
}