Намерение не получено от RedirectUriReceiverActivity в другом действии - PullRequest
0 голосов
/ 22 января 2020

Я застрял в очень простом вопросе, не могу понять, поэтому нуждаюсь в ваших предложениях. Итак, я пытаюсь аутентифицировать, скажем, API GoogleDrive, для чего я использую net .openid.appauth.AuthorizationRequest. Я создаю намерение Pending и передаю его службе авторизации для executeAuthorizationRequest. Ниже приведен пример кода для того же:

AuthorizationServiceConfiguration serviceConfiguration = new AuthorizationServiceConfiguration(
        Uri.parse(AUTH_ENDPOINT_URL),
        Uri.parse(TOKEN_ENDPOINT_URL)
);
Uri redirectUri = Uri.parse(getRedirectURI());
AuthorizationRequest.Builder builder = new AuthorizationRequest.Builder(
        serviceConfiguration,
        “Xyzzy….”,
        AuthorizationRequest.RESPONSE_TYPE_CODE,
        redirectUri
);

    builder.setScopes("https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.readonly");

AuthorizationRequest request = builder.build();
if (authorizationService != null) {
    authorizationService.dispose();
}
authorizationService = new AuthorizationService(activity);

Intent postAuthorizationIntent = new Intent(“HANDLE_YOUTUBE_AUTHORIZATION_RESPONSE_ACTION”);
postAuthorizationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, request.hashCode(), postAuthorizationIntent, 0);
authorizationService.performAuthorizationRequest(request, pendingIntent);

Теперь это перенаправляет на страницу разрешений Google Drive, и когда я нажимаю на разрешить (разрешения), я получаю намерение вернуться к действию, которое добавляется в pendingIntent. Я вижу, что onCreate действия RedirectUriReceiverActivity вызывается и отправляет намерение цели

try {
    target.send(this, 0, responseData);
} catch (CanceledException var10) {
    Logger.errorWithStack(var10, "Unable to send pending intent", new Object[0]);
} 

выше. Попробуйте перехватить код из функции RedirectUriReceiverActivity onCreate ()

Код из файла манифеста: RedirectUriReceiverActivity is добавлено в файл манифеста:

<activity android:name="net.openid.appauth.RedirectUriReceiverActivity">

и также добавлено разрешение на просмотр.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить это намерение. Я переопределяю onNewIntent () в своей деятельности, когда ожидаю возврата этого pendingIntent. Но не поможет. Нужно ли переопределять какие-либо другие функции или я что-то упустил?

API AuthorizationService вызывается из фрагмента, созданного в действии.

Может кто-нибудь подсказать, почему не получено намерение в деятельности. Любая помощь / руководство высоко ценится.

...