Java 从浏览器获取重定向的URL-Android

Java 从浏览器获取重定向的URL-Android,java,android,xml,redirect,browser,Java,Android,Xml,Redirect,Browser,这是我的问题,我想从用户那里授权我的应用程序。 为此,api为我提供了OAuth 2.0进程 我有一个链接“a”,其中包含我的应用程序密钥和我的重定向链接 例如,重定向链接 在浏览器中打开链接A时,会询问用户用户名和密码并授权我的应用程序,成功授权后,用户将重定向到REDIRECT\u link REDIRECT\u链接用一个我需要存储在变量中的键进行编码 例如?key=Asc545AS454dS44as 我不希望用户访问重定向链接,我只想获取url,然后关闭浏览器,页面不应打开 我使用此代码在

这是我的问题,我想从用户那里授权我的应用程序。 为此,api为我提供了OAuth 2.0进程

我有一个链接“a”,其中包含我的应用程序密钥和我的重定向链接

例如,
重定向链接

在浏览器中打开链接A时,会询问用户用户名和密码并授权我的应用程序,成功授权后,用户将重定向到
REDIRECT\u link

REDIRECT\u链接
用一个我需要存储在变量中的键进行编码

例如?
key=Asc545AS454dS44as

我不希望用户访问重定向链接,我只想获取url,然后关闭浏览器页面不应打开

我使用此代码在浏览器中打开链接

Intent httpIntent = new Intent(Intent.ACTION_VIEW);
            httpIntent.setData(Uri.parse("LINK_A"));
            startActivity(httpIntent); 

若你们在WebView中打开你们的页面,你们的应用程序可以通过回调监听任何URL的变化

如果您喜欢打开股票浏览器,可以启动一项服务,定期轮询最新的URL:

String lastDate = "0";
…
String newDate = Long.toString(Calendar.getInstance().getTimeInMillis());
Cursor cursor = context.getContentResolver().query(
    Browser.BOOKMARKS_URI,
    Browser.HISTORY_PROJECTION,
    Browser.BookmarkColumns.DATE + " IS NOT NULL AND " + Browser.BookmarkColumns.DATE + " > ?",
    lastDate,
    Browser.BookmarkColumns.DATE + " DESC");
if (cursor.moveToNext()) {
    String url = cursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX);
}
cursor.close();

lastDate = newDate; // update the timestamp
当您发现
url
与您预期的更改相匹配时,您可以切换到您的活动并在应用程序的上下文中继续

可以从最终用户的角度关闭浏览器,但可能不礼貌。想象一下,例如,她有5个打开的标签页,上面有重要信息,所有这些都被销毁了


请注意,此方法适用于Chrome浏览器,内容提供商略有不同:content://com.android.chrome.browser/bookmarks

不要在浏览器中打开,请使用网络视图。或者,创建一个HttpGet并检索位置重定向标头。我无法使用HttpGet,因为重定向发生在用户输入有效用户名和密码之后,因此必须向用户显示页面(链接A)。它不能在后端发生。好的!但是我如何跟踪重定向,我的意思是在获得重定向链接后关闭webview。我认为webview和webclient中有一些方法可以拦截请求,允许您不加载页面。