Java 使用意图检索授权代码

Java 使用意图检索授权代码,java,android,http,android-intent,oauth-2.0,Java,Android,Http,Android Intent,Oauth 2.0,我正在使用此帖子和答案尝试从我的重定向url检索授权代码,但它不起作用,但该人已将其作为正确答案接受: 以下是我使用的代码: public class Kiteworks_SignIn extends Activity { Uri uri; String redirect_uri; String authcode; WebView webView; Button browser; Intent browserIntent; String kiteworksurl; Intent getAut

我正在使用此帖子和答案尝试从我的重定向url检索授权代码,但它不起作用,但该人已将其作为正确答案接受:

以下是我使用的代码:

public class Kiteworks_SignIn extends Activity {

Uri uri;
String redirect_uri;
String authcode;
WebView webView;
Button browser;
Intent browserIntent;
String kiteworksurl;
Intent getAuthCode;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.kiteworks_sign_in);

    browser = findViewById(R.id.buttonBrowser);

    browser.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAuthCode = new Intent(Intent.ACTION_VIEW, Uri.parse("https://sync.almacgroup.com/oauth/authorize?client_id=1fb7c350-bb6a-5741-86b9-43afc2f1642f&redirect_uri=https://sync.almacgroup.com/rest/callback.html?display%3Dmobile&response_type=code&scope=&m=1&force_login=1"));
            startActivity(getAuthCode);

        }
    });
}

@Override
protected void onNewIntent(Intent intent) {
    Uri uri = getAuthCode.getData();
    if (uri != null) {
        String mainPart = uri.toString().split("#")[1];
        String[] arguments = mainPart.split("&");
        String argument = arguments[0];
        String token = argument.split("=")[1];
        Toast.makeText(this, token, Toast.LENGTH_SHORT).show();
    }
}
基本上我和这家伙的情况完全一样。我的应用程序重定向,我不确定如何提取授权码。我已经调试了OnNewIntent方法,但它没有捕获或执行调试,因此我看不出是否存在任何问题

以下是到达我的重定向Url后的格式:

https://sync.almacgroup.com/rest/callback.html?display=mobile&code=(THEN THE CODE FOLLOWS)
我是否在做一些不同的事情,或者为什么这不起作用


谢谢

如果您需要从此类url中拆分代码,为什么要从“#”中拆分。 你可以用这个

    String mainPart = uri.toString();
    String[] data = mainPart.split("?");
    String arguments = data[1];
    String[] argument = arguments.split("=");
    String token = argument[1];
    Toast.makeText(this, token, Toast.LENGTH_SHORT).show();

@我可以看到你回答了前面的问题,有什么想法吗?似乎仍然是空的。还有别的问题吗?看起来onNewIntent没有做任何事情你确定uri被解析成字符串了吗?我该怎么检查呢?对不起,事实上-我试图从中获取数据的目的应该是我的回调,而不是完整的url-我该如何从回调url中获取数据,但还需要启动完整的url来签名呢在不提供URL的情况下发生重定向