Войти в аккаунт Google в веб-браузере, используя токен диспетчера

Я получил токен доступа из диспетчера учетных записей для доступа ко всем API-интерфейсам google java, но мне нужно открыть WebView с Google, который должен быть зарегистрирован через токен доступа, полученный от менеджера аккаунта. У кого-нибудь есть представление об этом.

Я пытался использовать файлы cookie (через это ), но я не мог этого добиться. Если вы это знаете, разделите фрагмент кода.

Я нашел способ сделать это через файлы cookie с помощью ubertoken. Эта функция должна вызывать в отдельном потоке

public void setCookiesToWebView(AccountManager am,Account account,Context context){ String sid = ""; String lsid = ""; Thread uberTokenThread = new Thread(new Runnable() { @Override public void run() { try { sid = am.getAuthToken(account, "SID", null, context, null, null) .getResult().getString(AccountManager.KEY_AUTHTOKEN); } catch (OperationCanceledException e) { e.printStackTrace(); } catch (AuthenticatorException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { lsid = am.getAuthToken(account, "LSID", null, context, null, null) .getResult().getString(AccountManager.KEY_AUTHTOKEN); } catch (OperationCanceledException e) { e.printStackTrace(); } catch (AuthenticatorException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String TARGET_URL = "https://www.youtube.com/my_live_events"; Uri ISSUE_AUTH_TOKEN_URL = Uri.parse("https://www.google.com/accounts/IssueAuthToken?service=gaia&Session=false"); Uri TOKEN_AUTH_URL = Uri.parse("https://www.google.com/accounts/TokenAuth"); String url = ISSUE_AUTH_TOKEN_URL.buildUpon().appendQueryParameter("SID", sid) .appendQueryParameter("LSID", lsid) .build().toString(); HttpPost getUberToken = new HttpPost(url); HttpResponse response = null; try { response = httpClient.execute(getUberToken); } catch (ClientProtocolException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } HttpEntity entity = response.getEntity(); String uberToken = ""; try { uberToken = EntityUtils.toString(entity, "UTF-8"); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String getCookiesUrl = TOKEN_AUTH_URL.buildUpon() .appendQueryParameter("source", "android-browser") .appendQueryParameter("auth", uberToken) .appendQueryParameter("continue", TARGET_URL) .build().toString(); HttpGet getCookies = new HttpGet(getCookiesUrl); HttpResponse responseGetCookies = null; try { responseGetCookies = httpClient.execute(getCookies); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mCookieStore = ((AbstractHttpClient) httpClient).getCookieStore(); Cookie sessionInfo; List<Cookie> cookies = mCookieStore.getCookies(); if (! cookies.isEmpty()){ CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeSessionCookie(); CookieSyncManager.createInstance(getApplicationContext()); cookieManager.setAcceptCookie(true); for(Cookie cookie : cookies){ sessionInfo = cookie; String cookieString = sessionInfo.getName() + "=" + sessionInfo.getValue() + "; domain=" + cookie.getDomain(); cookieManager.setCookie(sessionInfo.getDomain(), cookieString); } CookieSyncManager.getInstance().sync(); } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }); uberTokenThread.start();