Integrasi login Google di Android

Tutorial Android

Integrasi login Google di Android

Dalam contoh ini kita akan membahas Cara memverifikasi nomor ponsel di android.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity"

android:gravity="center">

<com.google.android.gms.common.SignInButton

android:id="@+id/sign_in_button"

android:layout_width="200dp"

android:layout_height="80dp" />

</LinearLayout>

 

activity_user.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".UserActivity"

android:orientation="vertical">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/logoutBtn"

android:text="Logout"

android:layout_gravity="right"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textSize="20sp"

android:layout_margin="10dp"

android:id="@+id/textName"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textSize="20sp"

android:layout_margin="10dp"

android:id="@+id/textEmail"/>

</LinearLayout>

 

MainActivity.java

package com.example.googleloginexample;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import com.google.android.gms.auth.api.Auth;

import com.google.android.gms.auth.api.signin.GoogleSignIn;

import com.google.android.gms.auth.api.signin.GoogleSignInAccount;

import com.google.android.gms.auth.api.signin.GoogleSignInClient;

import com.google.android.gms.auth.api.signin.GoogleSignInOptions;

import com.google.android.gms.common.SignInButton;

import com.google.android.gms.common.api.ApiException;

import com.google.android.gms.common.api.GoogleApiClient;

import com.google.android.gms.tasks.Task;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

GoogleSignInClient mGoogleSignInClient;

SignInButton sign_in_button;

private GoogleApiClient googleApiClient;

private static final int RC_SIGN_IN = 1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Configure sign-in to request the user's ID, email address, and basic

// profile. ID and basic profile are included in DEFAULT_SIGN_IN.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)

.requestEmail()

.build();

// Build a GoogleSignInClient with the options specified by gso.

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

// Check for existing Google Sign In account, if the user is already signed in

// the GoogleSignInAccount will be non-null.

GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);

sign_in_button = findViewById(R.id.sign_in_button);

sign_in_button.setSize(SignInButton.SIZE_STANDARD);

sign_in_button.setOnClickListener(this);

// updateUI(account);

}

@Override

public void onClick(View v) {

Intent signInIntent = mGoogleSignInClient.getSignInIntent();

startActivityForResult(signInIntent, RC_SIGN_IN);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

super.onActivityResult(requestCode, resultCode, data);

// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);

if (requestCode == RC_SIGN_IN) {

// updateUI();

// The Task returned from this call is always completed, no need to attach

// a listener.

Task task = GoogleSignIn.getSignedInAccountFromIntent(data);

handleSignInResult(task);

}

}

private void handleSignInResult(Task completedTask) {

try {

GoogleSignInAccount account = completedTask.getResult(ApiException.class);

// Signed in successfully, show authenticated UI.

updateUI();

} catch (ApiException e) {

// The ApiException status code indicates the detailed failure reason.

// Please refer to the GoogleSignInStatusCodes class reference for more information.

Log.w("Warning", "signInResult:failed code=" + e.getStatusCode());

}

}

public void updateUI(){

Intent intent = new Intent(MainActivity.this, UserActivity.class);

startActivity(intent);

}

}

 

UserActivity.java

package com.example.googleloginexample;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import com.google.android.gms.auth.api.signin.GoogleSignIn;

import com.google.android.gms.auth.api.signin.GoogleSignInAccount;

import com.google.android.gms.auth.api.signin.GoogleSignInClient;

import com.google.android.gms.auth.api.signin.GoogleSignInOptions;

import com.google.android.gms.tasks.OnCompleteListener;

import com.google.android.gms.tasks.Task;

public class UserActivity extends AppCompatActivity {

private TextView textName,textEmail;

private Button logoutBtn;

GoogleSignInClient mGoogleSignInClient;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_user);

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)

.requestEmail()

.build();

// Build a GoogleSignInClient with the options specified by gso.

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

textName = findViewById(R.id.textName);

textEmail = findViewById(R.id.textEmail);

logoutBtn = findViewById(R.id.logoutBtn);

GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getApplicationContext());

if (acct != null) {

String personName = acct.getDisplayName();

String personGivenName = acct.getGivenName();

String personFamilyName = acct.getFamilyName();

String personEmail = acct.getEmail();

String personId = acct.getId();

Uri personPhoto = acct.getPhotoUrl();

textName.setText("Name:"+personName);

textEmail.setText("Email:"+personEmail);

}

logoutBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

signOut();

}

});

}

private void signOut() {

mGoogleSignInClient.signOut()

.addOnCompleteListener(this, new OnCompleteListener() {

@Override

public void onComplete(@NonNull Task task) {

Intent intent = new Intent(UserActivity.this, MainActivity.class);

startActivity(intent);

}

});

}

}

 

 

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *