Я только понял, что smartlock api не позволяет передавать фрагмент объекту ResolvingResultCallbacks, когда я делал рефакторинг для приложения Android.Как использовать фрагмент для запуска экономии Smartlock вместо использования Activity
API только позволяет мне передать действие как контекст, что означает, что мне нужно обработать результат учетных данных в методе onActivityResult() Activity вместо фрагмента. Но в текущем проекте нашего приложения мы хотим, чтобы Фрагмент обрабатывал логику смартфонов.
Вот мой код для сохранения:
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) {}
});
фактически для запроса учетных данных, я была такая же проблема, то апи оленья кожа обеспечивает способ передачи фрагмента, чтобы начать разрешение. но я найти обходной путь:
if (status.hasResolution()) {
mFragment.startIntentSenderForResult(
status.getResolution().getIntentSender(),
RC_CREDENTIALS_READ,
null,
0,
0,
0,
null);
}
спасибо! он работает отлично. за исключением того, что вы пропускаете некоторые параметры в mFragment.startIntentSenderForResult. XD – Qing
Спасибо, что сообщили мне, я исправил его сейчас. – iainmcgin