From b3972ef0e0ba0f83bac5f00be21991fd53c01da3 Mon Sep 17 00:00:00 2001 From: it232115 Date: Sat, 20 Jan 2024 14:31:16 +0900 Subject: [PATCH] =?UTF-8?q?QR=E7=94=BB=E5=83=8F=E3=81=AE=E3=82=B5=E3=82=A4?= =?UTF-8?q?=E3=82=BA=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/childguard/QrUtils.java | 8 +++---- .../com/example/childguard/TestService.java | 24 ++++++------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/example/childguard/QrUtils.java b/app/src/main/java/com/example/childguard/QrUtils.java index 48b6460..056ab6e 100644 --- a/app/src/main/java/com/example/childguard/QrUtils.java +++ b/app/src/main/java/com/example/childguard/QrUtils.java @@ -36,14 +36,14 @@ public class QrUtils { //IdPrefにの値が初期値の場合 AllURL=KoteiURL+key; - int size = 1500; + int qrCodeSize = calculateQRCodeSize(); // 画面密度に応じてサイズを計算 Bitmap QRGazou; Bitmap bitmapqr; try { //QRコード生成 BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); - bitmapqr = barcodeEncoder.encodeBitmap(AllURL, BarcodeFormat.QR_CODE, size, size); + bitmapqr = barcodeEncoder.encodeBitmap(AllURL, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize); } catch (WriterException e) { throw new AndroidRuntimeException("Barcode Error.", e); } @@ -58,7 +58,7 @@ public class QrUtils { // 画像のサイズの調整 int disWidth = (width - bitmapqr.getWidth()) / 2; - int disHeight = (int) ((height - bitmapqr.getHeight()) / 1.4); + int disHeight = (int) ((height - bitmapqr.getHeight()) / 1.5); canvas.drawBitmap(bitmap, 0, 0, (Paint) null); canvas.drawBitmap(bitmapqr, disWidth, disHeight, (Paint) null); // 画像合成 //Androidからプリンターへ印刷指示を出すサポートライブラリ @@ -72,7 +72,7 @@ public class QrUtils { // 画面密度に基づいてQRコードのサイズを計算 float density = context.getResources().getDisplayMetrics().density; - return (int) (1500 * density); + return (int) (800 * density); } } diff --git a/app/src/main/java/com/example/childguard/TestService.java b/app/src/main/java/com/example/childguard/TestService.java index 3f3da6a..28ed5a2 100644 --- a/app/src/main/java/com/example/childguard/TestService.java +++ b/app/src/main/java/com/example/childguard/TestService.java @@ -73,26 +73,16 @@ public class TestService extends Service { E.putBoolean("isInCarPref", documentSnapshot.getBoolean("isInCar"));//乗降状態の判定 E.apply();//確定処理 Log.d("nt", "レスポンスを検知しました1"); - if (documentSnapshot.getBoolean("isReported") == true && isInCar) {//isReportedがtrueかつisInCarがtrueのとき=サイト上で第三者ボタンが押されたときに乗車状態のとき - ResetReported();// ResetReported();を処理→FireBaseのisReportedをfalseにする - int importance = NotificationManager.IMPORTANCE_DEFAULT; - NotificationChannel channel = new NotificationChannel("CHANNEL_ID", "通報通知", importance); - channel.setDescription("第3者からの通報を検知しました"); - NotificationManager notificationManager = getSystemService(NotificationManager.class); - notificationManager.createNotificationChannel(channel); - Log.d("nt", "レスポンスを検知しました2"); - NotificationSetting();//通知に関する設定のメソッド - Notification(getApplicationContext());//通知を行うメソッド - } else if(isInCar){//Bluetoothの切断後5分以上乗車状態のままのとき→QRコード読み取りを忘れているとき→置き去り発生 + if (isInCar) {//isReportedがtrue=サイト上で乗車状態のとき + if (documentSnapshot.getBoolean("isReported")) { + ResetReported();// ResetReported();を処理→FireBaseのisReportedをfalseにする + NotificationSetting();//通知に関する設定のメソッド + Notification(getApplicationContext());//通知を行うメソッド + } + } else if(!isInCar){//isReportedがfalse=サイト上で降車状態のとき ResetReported();//ResetReported();を処理→FireBaseのisReportedをfalseにする - periodicTaskManager.startPeriodicTask();//通知のループをストップする - E.putBoolean("isInCarPref", !documentSnapshot.getBoolean("isInCar"));//乗降状態の判定 - E.apply();//確定処理 }else { ResetReported();//ResetReported();を処理→FireBaseのisReportedをfalseにする - periodicTaskManager.stopPeriodicTask();//5分毎に通知を行う - E.putBoolean("isInCarPref", documentSnapshot.getBoolean("isInCar"));//乗降状態の判定 - E.apply();//確定処理 } }