スマートロックAPIを使用して、アンドロイドアプリのリファクタリングを実行しているときに、ResolvingResultCallbacksオブジェクトにFragmentを渡すことができません。フラグメントを使用してアクティビティを使用する代わりにSmartLockの保存を開始する方法
APIは、アクティビティをコンテキストとして渡すことしかできません。つまり、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のdoesntのは、解像度を開始するフラグメントを渡す方法を提供します。しかし、私は、回避策を見つける:
if (status.hasResolution()) {
mFragment.startIntentSenderForResult(
status.getResolution().getIntentSender(),
RC_CREDENTIALS_READ,
null,
0,
0,
0,
null);
}
ありがとうございます!それは完璧に正常に動作します。ただし、mFragment.startIntentSenderForResultのいくつかのパラメータが不足している点が異なります。 XD – Qing
私に知らせてくれてありがとう、私は今それを修正しました。 – iainmcgin