Search code examples
javaandroidoauth-2.0

Oauth2 doesnt open an browser and a token in an android app


Trying to use the Oauth authorization flow in an andoid app using java. No browser opened needed for authorizing. I don't know if i should ask here or on the api's website

permission for internet is granted in manifest.xml

MainActivity.java:


import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button RankConfirm = findViewById(R.id.UsernameConfirm);
        RankConfirm.setOnClickListener(v -> {
               final EditText username_box = findViewById(R.id.OsuUsername);
               final  String Username = username_box.getText().toString();
               final TextView RankView = findViewById(R.id.RankView);
               API_Response.UpdateRank(Username,RankView);
        });}

    }

API.java


import android.util.Log;
import android.widget.TextView;

import java.io.IOException;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class API {
    public static void UpdateRank(String Username, TextView RankView) {
        Thread NetworkThread = new Thread ("NetworkThread"){
            private volatile String Rank = "nic";
            public void run() {
                OkHttpClient client1 = new OkHttpClient();
                Request request1 = new Request.Builder()
                        .url("https://osu.ppy.sh/oauth/authorize/?client_id=14403&redirect_uri=https://google.com&response_type=code&scope=public")
                        .build();
                try {
                    Response response1 = client1.newCall(request1).execute();
                    String Code = response1.body().string();
                    Log.e("Debug", Code);

                } catch (IOException e) {
                    Log.e("Debug", "IO exception1");
                }```


Solution

  • Realized i was doing it completly wrong and i should have used a WebView