현재 안드로이드 스튜디오로 qr출퇴근을 구현하는중인데
qr코드에 id값을 넣고 생성하는것까진 완료했지만
qr코드가 바코드 스캐너에 찍혔을때, 어떻게해야 id값을 다시 서버로 전달할지 모르겠습니다.
안드로이드 스튜디오와 바코드 스캐너를 연동해서 바코드 스캐너에 qr코드가 찍혔을때, id값을 서버로 다시 전달하는것이 목적입니다.
어떻게해야 구현될지 답변 부탁드립니다...ㅜㅜ
혹시몰라서 코드또한 같이 첨부합니다.
이 코드는 서버로부터 id값을 받아서 qr코드에 id값을 넣고 생성하는 코드입니다.
바코드 스캐너는 usb형식의 바코드 스캐너(잘콤 제코드)를 사용하려고 합니다.
qr코드를 스캐너에 찍으면 id값이 텍스트로 커서를 잡은 입력도구에 찍히긴합니다.
너무 두서없이 말했는데 정말 막막합니다ㅠㅠ
도움주시면 감사하겠습니다.
package com.example.kick_login;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.inputmethod.InputMethod;
import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import com.example.connection.HttpConnection;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.journeyapps.barcodescanner.BarcodeEncoder;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Objects;
public class CreateQRActivity extends AppCompatActivity {
private ActivityResultLauncher<Intent> qrScannerLauncher;
TextView dummy_id;
String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_qractivity);
// dummy_id 초기화
dummy_id = findViewById(R.id.dummy_id);
SharedPreferences sharedPreferences = getSharedPreferences("KickForward", MODE_PRIVATE);
String data = sharedPreferences.getString("data", "");
JSONObject qrInfoJson = new JSONObject();
try {
JSONObject tokenJsonObject = new JSONObject(data);
String userId = tokenJsonObject.optString("id", "");
String userPass = tokenJsonObject.optString("pw", "");
qrInfoJson.put("id", userId);
qrInfoJson.put("pw", userPass);
String QRInfoData = qrInfoJson.toString();
String path = getResources().getString(R.string.server_url) + "/memberInfo";
HttpConnection httpConnection = new HttpConnection(new HttpConnection.HttpConnectionListener() {
@Override
public void onResult(String data) {
try {
JSONObject tokenJsonObject = new JSONObject(data);
id = tokenJsonObject.optString("id", "");
// dummy_id 설정
dummy_id.setText(id);
// idText 값 가져오기
String idText = dummy_id.getText().toString().trim();
// QR 코드 생성
MultiFormatWriter writer = new MultiFormatWriter();
try {
BitMatrix bitMatrix = writer.encode(idText, BarcodeFormat.QR_CODE, 350, 350);
BarcodeEncoder encoder = new BarcodeEncoder();
Bitmap bitmap = encoder.createBitmap(bitMatrix);
ImageView imageViewQrCode = findViewById(R.id.imageViewQrCode);
imageViewQrCode.setImageBitmap(bitmap); // 이미지뷰에 직접 설정
} catch (Exception e) {
e.printStackTrace();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
httpConnection.execute(path, QRInfoData);
} catch (JSONException e) {
e.printStackTrace();
}
}
}