4

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);
}
4

1 に答える 1