黃日勝,陳冠志
(河源職業(yè)技術(shù)學院,廣東 河源 517000)
學生考勤是課堂教學的一部分,是加強學生管理維護學校教學秩序、保證各項教學任務順利實施的一個關(guān)鍵環(huán)節(jié)[1]。但傳統(tǒng)的課堂點名方式不僅耗費了寶貴的課堂時間而且還加重教師的工作負擔[2]。當前,二維碼具有信息容量大、糾錯能力強、印刷成本低等特點,而廣泛應用于各種領(lǐng)域[3]。物聯(lián)網(wǎng)技術(shù)、移動互聯(lián)技術(shù)的迅速發(fā)展,給日常生活帶來巨大的變化。由此本文將結(jié)合移動互聯(lián)技術(shù)、二維碼技術(shù)提出一種基于Android 平臺的智慧考勤應用系統(tǒng),結(jié)合學校教務系統(tǒng)的課程及學生信息,利用移動終端的攝像頭采集并自動識別二維碼信息,然后通過移動互聯(lián)網(wǎng)絡傳輸?shù)椒掌鳎瑥亩鴮崿F(xiàn)移動在線智能化考勤。
智慧考勤APP由兩個部分組成:教師簽到系統(tǒng)和學生簽到系統(tǒng)。教師簽到系統(tǒng)方便教師發(fā)起簽到和考勤統(tǒng)計,并實時顯示老師上課的課程表。學生簽到系統(tǒng)實時顯示學生上課的課程表,學生可以通過掃二維碼的方式進行簽到。
教師簽到系統(tǒng)由教師課程表查看、對應課程發(fā)起簽到、對應課程考勤統(tǒng)計查看、搜索課程考勤統(tǒng)計、手動考勤管理等功能組成。
教師課程表查看:從服務端獲取該教師課程表的數(shù)據(jù),進行實時顯示該教師上課的課程表。
對應課程發(fā)起簽到:對課程表的課程進行長按,選擇發(fā)起簽到,便可對該課程向服務端發(fā)起簽到指令。
對應課程考勤統(tǒng)計查看:對課程表的課程進行長按,選擇考勤統(tǒng)計,便可查看該課程的考勤統(tǒng)計。
搜索課程考勤統(tǒng)計:教師可按學年-學期-班級-課程進行搜索并查看考勤統(tǒng)計。
手動考勤管理:對學生考勤異常的情況,教師可通過手動對該學生進行考勤管理。
學生簽到系統(tǒng)由掃二維碼簽到、學生課程表查看、查看對應課程的詳細信息等功能組成。掃二維碼簽到:學生可通過掃二維碼的方式進行簽到。學生課程表查看:從服務端獲取該學生課程表的數(shù)據(jù),進行實時顯示該學生上課的課程表。
查看對應課程的詳細信息:對課程表的課程點擊,便可查看該課程的詳細信息。
課程表包含3個功能,分別是發(fā)起簽到、考勤統(tǒng)計、手動考勤管理,單擊課程,就進入手動考勤管理界面;長按,就會彈出發(fā)起簽到和考勤統(tǒng)計的提示框。點擊發(fā)起簽到時,就會向服務器發(fā)起簽到指令;點擊考勤統(tǒng)計,進入考勤統(tǒng)計界面。
從服務器獲取教師上課的課程表JSON數(shù)據(jù),接著進行數(shù)據(jù)處理,最后將數(shù)據(jù)展示成界面。當教師單擊課程時,就進入手動考勤管理界面;當教師對課程表長按時,就會彈出發(fā)起簽到和考勤統(tǒng)計的提示框。點擊發(fā)起簽到時,就會向服務器發(fā)起簽到指令;點擊考勤統(tǒng)計時,就進入該課程的考勤統(tǒng)計界面。教師課程表、考勤統(tǒng)計的實施界面分別如圖1—2所示。顯示課程表及手動考勤管理主要代碼如下。
//顯示課程表
private void showCourse(){
showCourseTemp(mCourseListTemp,0);
mCourseListTemp.clear();
showCourseTemp(mTeaCourseList,1);
mCourseListTemp.addAll(mTeaCourseList);
}
//手動考勤管理
Alert Dialog dialog = new Alert Dialog.Builder(SdglActivity.this)
.setTitle(“對【“ + sdglBean.getName() + “】手動考勤操作:”)
.setSingleChoiceItems(new String[]{“正常簽到”,”請假”“遲到”“早退”“曠課”}, sdglBean.getState(),(dialog1,which) ->{
sdglBean.setState(which);
dialog1.dismiss();
ToastUtil.info(“操作成功”);
}).create();
dialog.show();
圖1 教師課程表
圖2 考勤統(tǒng)計
按學年—學期—班級—課程進行篩選時,可查看到篩選出來的考勤統(tǒng)計結(jié)果。當教師按學年—學期—班級—課程進行篩選時,可查看到篩選出來的考勤統(tǒng)計結(jié)果。當教師點擊統(tǒng)計標題列時,會對該列進行降序或升序排列。條件篩選、篩選結(jié)果實現(xiàn)界面分別如圖3—4所示。條件篩選的主要實施代碼如下:
圖4 篩選結(jié)果
this.setOnClickListener(v ->{
if (myPopW.isShowing()){
myPopW.dismiss();
this.setTextColor(getResources().getColor(R.color.colorDarkBlue));
this.setCompoundDrawablesWithIntrinsicBounds(null,null, tvIcoDown, null);
} else{
myPopW.show(this);
this.setTextColor(getResources().getColor(R.color.colorAccent));
this.setCompoundDrawablesWithIntrinsicBounds(null,null, tvIcoUp, null);
}});
本功能基于Google的開源庫 Zxing開發(fā),學生點擊掃碼按鈕,打開攝像頭,掃描服務器發(fā)過來的二維碼,進行簽到。簽到界面、掃碼界面分別如圖5—6所示。處理二維碼掃描結(jié)果的主要代碼如下:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == QR_CODE_REQUEST_CODE) {
//處理掃描結(jié)果(在界面上顯示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null){
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) ==CodeUtils.RESULT_SUCCESS){
String result = bundle.getString(CodeUtils.RESULT_STRING);
String resultUrl = result+”3838438”;
OkHttpUtils.post().url(resultUrl).build().execute(new StringCallback(){
@Override
public void onError(Call call, Exception e, int i) {
}
@Override
public void onResponse(String s, int i) { }
});
}else if (bundle.getInt(CodeUtils.RESULT_TYPE) ==CodeUtils.RESULT_FAILED){
ToastUtil.info(“解析二維碼失敗”);
}
}
}
}
圖5 簽到界面
圖6 掃碼
從服務器獲取學生上課的課程表JSON數(shù)據(jù),接著進行數(shù)據(jù)處理,最后將數(shù)據(jù)展示成界面。當學生單擊課程時,便可查看該課程詳細信息。學生課程表、課程詳情界面分別如圖7—8所示。查看課程詳情的主要實施代碼如下:
protected void courseInfoShow(String byClsName)
{
List<Cou rse> quer yList = Dat aSuppor t.where(“clsName=?”, byClsName). find(Course.class);
for (Course course : queryList)
{
tvTeaName.setText(course.getTeaName());
tvClasName.setText(course.getClsName());
tvClsRoom.setText(course.getRoomName());
tvBeginWeek.setText(“第” + course.getBeginWeek() +“周”);
tvEndWeek.setText(“第” + course.getEndWeek() +“周”);
}
myPopW.show(getView());
}
圖7 學生課程表
圖8 課程詳情
本系統(tǒng)通過結(jié)合移動互聯(lián)網(wǎng)技術(shù)、二維碼技術(shù)來實時記錄學生課堂出勤情況,有效整合學校教務系統(tǒng)的相關(guān)功能。從實現(xiàn)結(jié)果來看,基于Android的智慧考勤APP操作方便快捷,功能強大。對于提高點名效率,促進學校課堂管理具有一定的意義。