1.0.0发布

master
hwf453 2 years ago
parent 49509d7c6d
commit 482f84f5a9

@ -13,9 +13,6 @@ android {
//authorities //authorities
resValue "string", "authorities", applicationId resValue "string", "authorities", applicationId
multiDexEnabled true multiDexEnabled true
ndk {
abiFilters 'armeabi-v7a','arm64-v8a'
}
} }
buildFeatures { buildFeatures {
viewBinding = true viewBinding = true
@ -51,17 +48,12 @@ android {
//apk //apk
android.applicationVariants.all { variant -> android.applicationVariants.all { variant ->
variant.outputs.all { variant.outputs.all {
outputFileName = "sbcksyy.apk" outputFileName = "meetingbook1.apk"
} }
}; };
} }
} }
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
namespace 'com.rehome.meetingbook' namespace 'com.rehome.meetingbook'
compileOptions { compileOptions {
targetCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17

Binary file not shown.

Binary file not shown.

@ -1,163 +0,0 @@
package com.rehome.meetingbook.ZKUSBManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbManager;
import androidx.annotation.NonNull;
import java.util.Random;
/**
* usb permission and hotplug
*/
public class ZKUSBManager {
//usb's vendor id
private int vid = 0;
//usb's product id
private int pid = 0;
//application context
private Context mContext = null;
/////////////////////////////////////////////
//for usb permission
private static final String SOURCE_STRING = "0123456789-_abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ";
private static final int DEFAULT_LENGTH = 16;
private String ACTION_USB_PERMISSION;
private boolean mbRegisterFilter = false;
private ZKUSBManagerListener zknirusbManagerListener = null;
private BroadcastReceiver usbMgrReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action))
{
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device.getVendorId() == vid && device.getProductId() == pid) {
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
zknirusbManagerListener.onCheckPermission(0);
} else {
zknirusbManagerListener.onCheckPermission(-2);
}
}
}
else if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action))
{
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device.getVendorId() == vid && device.getProductId() == pid) {
zknirusbManagerListener.onUSBArrived(device);
}
}
else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action))
{
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device.getVendorId() == vid && device.getProductId() == pid) {
zknirusbManagerListener.onUSBRemoved(device);
}
}
}
};
private boolean isNullOrEmpty(String target) {
if (null == target || "".equals(target) || target.isEmpty()) {
return true;
}
return false;
}
private String createRandomString(String source, int length) {
if (this.isNullOrEmpty(source)) {
return "";
}
StringBuffer result = new StringBuffer();
Random random = new Random();
for(int index = 0; index < length; index++) {
result.append(source.charAt(random.nextInt(source.length())));
}
return result.toString();
}
public boolean registerUSBPermissionReceiver()
{
if (null == mContext || mbRegisterFilter)
{
return false;
}
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_USB_PERMISSION);
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
mContext.registerReceiver(usbMgrReceiver, filter);
mbRegisterFilter = true;
return true;
}
public void unRegisterUSBPermissionReceiver()
{
if (null == mContext || !mbRegisterFilter)
{
return;
}
mContext.unregisterReceiver(usbMgrReceiver);
mbRegisterFilter = false;
}
//End USB Permission
/////////////////////////////////////////////
public ZKUSBManager(@NonNull Context context, @NonNull ZKUSBManagerListener listener)
{
super();
if (null == context || null == listener)
{
throw new NullPointerException("context or listener is null");
}
zknirusbManagerListener = listener;
ACTION_USB_PERMISSION = createRandomString(SOURCE_STRING, DEFAULT_LENGTH);
mContext = context;
}
//0 means success
//-1 means device no found
//-2 means device no permission
public void initUSBPermission(int vid, int pid){
UsbManager usbManager = (UsbManager)mContext.getSystemService(Context.USB_SERVICE);
UsbDevice usbDevice = null;
for (UsbDevice device : usbManager.getDeviceList().values()) {
int device_vid = device.getVendorId();
int device_pid = device.getProductId();
if (device_vid == vid && device_pid == pid)
{
usbDevice = device;
break;
}
}
if (null == usbDevice)
{
zknirusbManagerListener.onCheckPermission(-1);
return;
}
this.vid = vid;
this.pid = pid;
if (!usbManager.hasPermission(usbDevice))
{
Intent intent = new Intent(this.ACTION_USB_PERMISSION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0);
usbManager.requestPermission(usbDevice, pendingIntent);
}
else {
zknirusbManagerListener.onCheckPermission(0);
}
}
}

@ -1,16 +0,0 @@
package com.rehome.meetingbook.ZKUSBManager;
import android.hardware.usb.UsbDevice;
public interface ZKUSBManagerListener
{
//0 means success
//-1 means device no found
//-2 means device no permission
void onCheckPermission(int result);
void onUSBArrived(UsbDevice device);
void onUSBRemoved(UsbDevice device);
}

@ -0,0 +1,34 @@
package com.rehome.meetingbook.bean;
public class BaseApiBean {
//请求标识
private int flag;
//状态消息
private String msg;
//请求是否成功
private boolean success = false;
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
}

@ -0,0 +1,59 @@
package com.rehome.meetingbook.bean;
import java.util.List;
public class MeetingBookBean extends BaseApiBean{
private RowsBean data;
public RowsBean getData() {
return data;
}
public void setData(RowsBean data) {
this.data = data;
}
public static class RowsBean {
//会议室名称
private String name;
//会议室状态
private String status;
//会议开始时间
private String startTime;
//会议结束时间
private String endTime;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
}
}

@ -8,7 +8,10 @@ public class Contans {
public static String CHECK_UPDATA_APK = "ApkUpdate/GetData.aspx"; public static String CHECK_UPDATA_APK = "ApkUpdate/GetData.aspx";
public static String IP = "http://192.168.2.191:8510/"; // public static String IP = "http://192.168.2.191:8510/";
public static String IP = "http://10.55.54.200:8500/";
// public static String network_type_Intranet = "http://192.168.254.1:8090/"; // public static String network_type_Intranet = "http://192.168.254.1:8090/";
// public static String network_type_extranet = "http://113.107.214.27:8090/"; // public static String network_type_extranet = "http://113.107.214.27:8090/";

@ -2,67 +2,41 @@ package com.rehome.meetingbook.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.drawable.Drawable;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbManager;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import com.rehome.meetingbook.MainActivity;
import com.rehome.meetingbook.R; import com.rehome.meetingbook.R;
import com.rehome.meetingbook.ZKUSBManager.ZKUSBManager;
import com.rehome.meetingbook.ZKUSBManager.ZKUSBManagerListener;
import com.rehome.meetingbook.base.BaseActivity2; import com.rehome.meetingbook.base.BaseActivity2;
import com.rehome.meetingbook.bean.MeetingBookBean;
import com.rehome.meetingbook.contans.Contans; import com.rehome.meetingbook.contans.Contans;
import com.rehome.meetingbook.databinding.ActivityLoginBinding; import com.rehome.meetingbook.databinding.ActivityLoginBinding;
import com.rehome.meetingbook.utils.ControllerActivity; import com.rehome.meetingbook.utils.ControllerActivity;
import com.rehome.meetingbook.utils.GsonUtils; import com.rehome.meetingbook.utils.GsonUtils;
import com.rehome.meetingbook.utils.HttpListener; import com.rehome.meetingbook.utils.HttpListener;
import com.rehome.meetingbook.utils.NoProgresshttpUtils; import com.rehome.meetingbook.utils.NoProgresshttpUtils;
import com.rehome.meetingbook.utils.NohttpUtils;
import com.rehome.meetingbook.utils.UiUtlis;
import com.rehome.meetingbook.weiget.CustomLoadingDialog; import com.rehome.meetingbook.weiget.CustomLoadingDialog;
import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.RequestMethod; import com.yolanda.nohttp.RequestMethod;
import com.yolanda.nohttp.rest.Request; import com.yolanda.nohttp.rest.Request;
import com.yolanda.nohttp.rest.Response; import com.yolanda.nohttp.rest.Response;
import com.zkteco.android.biometric.core.device.ParameterHelper;
import com.zkteco.android.biometric.core.device.TransportType;
import com.zkteco.android.biometric.core.utils.LogHelper;
import com.zkteco.android.biometric.module.idcard.IDCardReader;
import com.zkteco.android.biometric.module.idcard.IDCardReaderFactory;
import com.zkteco.android.biometric.module.idcard.IDCardType;
import com.zkteco.android.biometric.module.idcard.exception.IDCardReaderException;
import com.zkteco.android.biometric.module.idcard.meta.IDCardInfo;
import com.zkteco.android.biometric.module.idcard.meta.IDPRPCardInfo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CountDownLatch; import java.util.Timer;
import java.util.concurrent.TimeUnit; import java.util.TimerTask;
import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts; import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
/** /**
* Create By HuangWenFei * Create By HuangWenFei
@ -72,13 +46,16 @@ import androidx.appcompat.widget.Toolbar;
public class LoginActivity extends BaseActivity2<ActivityLoginBinding> { public class LoginActivity extends BaseActivity2<ActivityLoginBinding> {
private long exitTime = 0; private long exitTime = 0;
private String meetingRoomName = "报告厅"; //private String meetingRoomName = "报告厅";
private String meetingRoomName = "3楼多媒体会议室";
private CustomLoadingDialog customDialog; private CustomLoadingDialog customDialog;
private String xm; private String xm;
//定时器
private Timer timer;
private final ActivityResultLauncher<Intent> mAppointmentSearchStartActivityForResult = registerForActivityResult( private final ActivityResultLauncher<Intent> mAppointmentSearchStartActivityForResult = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(), new ActivityResultContracts.StartActivityForResult(),
@ -120,11 +97,11 @@ public class LoginActivity extends BaseActivity2<ActivityLoginBinding> {
}); });
} }
@Override @Override
protected void initData() { protected void initData() {
binding.tvRoomTitle.setText("欢迎使用" + meetingRoomName);
getMeetingRoomBookData(); getMeetingRoomBookData();
} }
@ -160,6 +137,31 @@ public class LoginActivity extends BaseActivity2<ActivityLoginBinding> {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} }
@Override
protected void onResume() {
super.onResume();
if(timer==null){
try {
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
getMeetingRoomBookData();
}
}, 20000, 20000);
// 设定指定的时间time,此处为10000毫秒
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onDestroy() {
if(timer!=null){
timer.cancel();
}
super.onDestroy();
}
//身份证号码格式校验 //身份证号码格式校验
public boolean checkIdCardNoFormat(String idCardNo) { public boolean checkIdCardNoFormat(String idCardNo) {
@ -206,9 +208,10 @@ public class LoginActivity extends BaseActivity2<ActivityLoginBinding> {
return null; return null;
} }
public String getPhoneInfo(String name) { public String getPhoneInfo(String name) {
Map<String,String> param = new HashMap<>(); Map<String, String> param = new HashMap<>();
param.put("name",name); param.put("name", name);
String json = GsonUtils.GsonString(param); String json = GsonUtils.GsonString(param);
showLog(json); showLog(json);
return json; return json;
@ -231,7 +234,7 @@ public class LoginActivity extends BaseActivity2<ActivityLoginBinding> {
// } // }
request.setDefineRequestBodyForJson(json); request.setDefineRequestBodyForJson(json);
NoProgresshttpUtils.getInstance().add( 0, request, callback); NoProgresshttpUtils.getInstance().add(0, request, callback);
//NohttpUtils.getInstance().add(LoginActivity.this, 0, request, callback, true, true, "登录中..."); //NohttpUtils.getInstance().add(LoginActivity.this, 0, request, callback, true, true, "登录中...");
} }
@ -241,41 +244,39 @@ public class LoginActivity extends BaseActivity2<ActivityLoginBinding> {
String result = response.get(); String result = response.get();
showLog("-----login-----"); showLog("-----login-----");
showLog(result); showLog(result);
//showToast(result);
// UserInfo userInfo = GsonUtils.GsonToBean(jsonDecode, UserInfo.class);
// MeetingBookBean meetingBookBean = GsonUtils.GsonToBean(result, MeetingBookBean.class);
// if (userInfo != null) {
// UserInfo.User user = userInfo.getRows().get(0); if (meetingBookBean != null && meetingBookBean.isSuccess() && meetingBookBean.getData() != null) {
// String status = user.getStatus(); MeetingBookBean.RowsBean rowsBean = meetingBookBean.getData();
// String username = user.getUsernames(); String status = rowsBean.getStatus();
// String token = user.getToken(); String startTime = rowsBean.getStartTime();
// String endTime = rowsBean.getEndTime();
// if (status.equals("空闲")) {
// switch (status) { Drawable drawable = ContextCompat.getDrawable(context, R.drawable.free);
// case "0": if (drawable != null) {
// showToast("用户名或密码错误"); // 使用drawable
// break; binding.containerMeeting.setBackground(drawable);
// case "1": binding.tvShowTime.setVisibility(View.INVISIBLE);
// if (user != null && user.getUsername() != null) { binding.tvMeetingTime.setVisibility(View.INVISIBLE);
// String usernameLogin = UiUtlis.getText(etUse); binding.tvStatus.setText("空闲");
// if (usernameLogin != null && usernameLogin.equals(user.getUsername())) { }
// }
// } if (status.equals("使用中")) {
// } Drawable drawable = ContextCompat.getDrawable(context, R.drawable.busy);
// break; if (drawable != null) {
// case "2": // 使用drawable
// showToast("登录异常..."); binding.containerMeeting.setBackground(drawable);
// break; binding.tvShowTime.setVisibility(View.VISIBLE);
// case "3": binding.tvMeetingTime.setVisibility(View.VISIBLE);
// showToast("未激活或未授权..."); binding.tvStatus.setText("使用中");
// break; if(rowsBean.getStartTime()!=null&&rowsBean.getEndTime()!=null){
// case "4": binding.tvMeetingTime.setText(rowsBean.getStartTime() + "~" + rowsBean.getEndTime());
// showToast("禁止登陆..."); }
// break; }
// } }
// } else { }
// showLog(UiUtlis.getString(context, R.string.data_error));
// }
} }
@Override @Override

@ -4,7 +4,7 @@
android:id="@+id/containerMeeting" android:id="@+id/containerMeeting"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/busy" android:background="@drawable/free"
android:clipToPadding="true" android:clipToPadding="true"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:orientation="vertical" android:orientation="vertical"
@ -23,12 +23,13 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_room_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="欢迎使用报告厅" android:text="欢迎使用报告厅"
android:textColor="#ffffff" android:textColor="#ffffff"
android:textSize="36px" /> android:textSize="68px" />
</LinearLayout> </LinearLayout>
<TextView <TextView
@ -49,7 +50,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@+id/linearLayout" android:layout_below="@+id/linearLayout"
android:layout_above="@+id/tv_version" android:layout_above="@+id/tv_version"
android:layout_marginTop="200px" android:layout_marginTop="180px"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
@ -64,36 +65,41 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_status"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="使用中" android:text="空闲"
android:textColor="#ffffff" android:textColor="#ffffff"
android:textSize="140px" /> android:textSize="160px" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_title" android:id="@+id/ll_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="130px" android:layout_marginTop="110px"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_show_time"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:visibility="invisible"
android:text="使用时间" android:text="使用时间"
android:textColor="#ffffff" android:textColor="#ffffff"
android:textSize="48px" /> android:textSize="68px" />
<TextView <TextView
android:id="@+id/tv_meeting_time"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:visibility="invisible"
android:layout_marginTop="20px" android:layout_marginTop="20px"
android:text="9:00~9:35" android:text="9:00~9:35"
android:textColor="#ffffff" android:textColor="#ffffff"
android:textSize="48px" /> android:textSize="68px" />
</LinearLayout> </LinearLayout>

Loading…
Cancel
Save