일단 로그인 회원가입 구현에 필요한 전화번호 기반 QR 생성 어플을 구현할 것이다.
사용자가 사용하는 어플에 회원가입을 할때 간편하게 회원가입을 위해서 우선적으로 전화번호만 사용하기로하였다.
그리고 보안을 위해서 전화번호 인증기능도 함께 구현하기로했다.
그 중 전화번호 QR생성 어플을 먼저 구현해보자!
일단 결과는 아래와 같다.

일단 QR 리더기는 파싱하여 정보를 저장해야하기 때문에
{"userNumber":"01000000000"}
형태가 qr에 저장되게 구현할 것이다.
내가 참고한 링크는 아래와 같다.
https://aries574.tistory.com/197
[안드로이드] 나만의 큐알코드(QR CODE) 만드는 방법
이번 시간에는 나만의 큐알코드(QR CODE)를 만드는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리(Library) 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java 1. 실행 화
aries574.tistory.com
1. 먼저 build.gradle(Module :app)에 qr기능을 사용하기 위해서 아래코드를 추가한다.
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
2. 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"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/qrcode_editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:padding="12dp" />
<Button
android:id="@+id/qrcode_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="QR CODE" />
<ImageView
android:id="@+id/qrcode_imageView"
android:layout_width="400dp"
android:layout_height="400dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
</LinearLayout>
3. MainActivity.java
package com.example.qr_gen;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.journeyapps.barcodescanner.BarcodeEncoder;
public class MainActivity extends AppCompatActivity {
EditText qrcode_editText;
ImageView qrcode_imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
qrcode_editText = findViewById(R.id.qrcode_editText);
qrcode_imageView = findViewById(R.id.qrcode_imageView);
Button create_qrcode_btn = findViewById(R.id.qrcode_btn);
create_qrcode_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//입력 데이터 변수에 담기
String editText = qrcode_editText.getText().toString().trim();
String userNumber = "{\"userNumber\":\"" + editText + "\"}";
MultiFormatWriter writer = new MultiFormatWriter();
try {
//1.바코드 생성
BitMatrix matrix = writer.encode(userNumber, BarcodeFormat.QR_CODE, 350, 350);
//2.바코드엔코더 생성
BarcodeEncoder encoder = new BarcodeEncoder();
//3. 엔코더로 생성한 코드를 비트맵 객체에 넣기
Bitmap bitmap = encoder.createBitmap(matrix);
//4. 비트맴을 이미지뷰에 넣기
qrcode_imageView.setImageBitmap(bitmap);
//5. 입출력 매니저 생성
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//매니저 객체로 키보드 숨기기
manager.hideSoftInputFromWindow(qrcode_editText.getApplicationWindowToken(), 0);
} catch (WriterException e) {
e.printStackTrace();
}
}
});
}
}
'🙋♀️ Android' 카테고리의 다른 글
| [Android] Firebase Realtime Database 리스트뷰에 실시간 출력하기 (0) | 2023.05.23 |
|---|---|
| [Android] QR통해 firebase Realtime Database 저장 구현 ,QR_reader기 (0) | 2023.05.08 |
| [Android] firebase SMS 인증 기능, qr코드 생성 (1) | 2023.05.08 |
| [Android] 안드로이드와 firebase 연동하기 (0) | 2023.05.03 |
| 로그인, 회원가입 / 출입기록 시스템 구현 - [안드로이드 , DB] (0) | 2023.05.01 |