MODUL WORKSHOP IMPLEMENTASI CUBEACON ATTENDANCE
PELAKSANA PT. EYRO DIGITAL TEKNOLOGI
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Jln. Raya ITS – Kampus PENS Sukolilo Surabaya 60111 INDONESIA Telp. (031) 594 7280 Fax. (031) 594 6114
DAFTAR ISI DAFTAR ISI ........................................................................................................................................ 2 MEBUAT APLIKASI ANDROID ............................................................................................................ 3 A.
JALANKAN ANDROID STUDIO ....................................................................................................... 3
B.
MEMBUAT PROJEK BARU............................................................................................................ 4
C.
MEMASUKKAN ATTENDANCE SDK ................................................................................................ 6
D.
MEMBUAT CLASS INISIALISASI ...................................................................................................... 8
E.
MENGHUBUNGKAN CLASS INISIALIASI DENGAN MANIFEST ................................................................. 9
F.
MEMBUAT MAIN ACTIVITY ......................................................................................................... 9
G.
MENAMBAHKAN EVENT BEACON KEDALAM MAIN ACTIVITY ............................................................. 10
H.
MENAMBAHKAN LAUNCER ACTIVITY ........................................................................................... 11
I.
TAMBAHKAN LOGIN UI DI DALAM ANDROIDMANIFEST .................................................................... 12
2
Mebuat Aplikasi Android A. Jalankan Android Studio
3
B. Membuat Projek Baru
4
5
C. Memasukkan Attendance SDK Download SDK di http://tinyurl.com/pnkhtgn Kemudian Extract file zip tersebut.
Copy Paste ke app->libs
Buka app->build.gradle kemudian tambahkan baris konfigurasi ini di atas blok dependencies. repositories{ flatDir { dirs 'libs' } }
6
Masukkan juga compile library di dalam blok dependencies compile compile compile compile
'com.android.support:recyclerview-v7:23.1.0' 'com.android.support:cardview-v7:23.1.0' 'com.eyro.cubeacon.attendance.sdk:AttendanceSDK:1.0.0@aar' 'com.parse.ui:ParseLoginUI:1.10.2@aar'
Sehingga menjadi seperti ini :
Kemudian tekan klik link sync now di pojok kanan atas.
7
D. Membuat Class Inisialisasi Masuk ke app->src->main->java->folder_projek kemudian create Java Class, misalnya dengan nama Attendance.
Extends class tersebut ke Application, kemudian masukan inisialisasi AttendanceSDK pada Event onCreate. public class Attendance extends Application { @Override public void onCreate() { super.onCreate(); AttendanceSDK.initialize(this); } }
8
E. Menghubungkan Class Inisialiasi dengan Manifest Buka app->src->main->AndroidManifest.xml kemudian hubungkan class Attendance ke dalam scope application.
F. Membuat Main Activity Masuk ke app->src->main->java->folder_projek, lalu create new activity->Empty Activity. Lalu kemudian tekan finish.
9
G. Menambahkan Event Beacon Kedalam Main Activity Extends MainActivity ke CBActivity dan kemudian raise event OnRangin, OnEnter, dan OnExit.
Inisialisasi variable TAG di bawah nama Class private static final String TAG = MainActivity.class.getSimpleName();
Kemudian tambahkan function sendEnterAttendance pada event onEnter untuk memasukkan data checkin ke backend. Log.d(TAG, "Entering region beacon : " + cbBeacon.toString()); sendEnterAttendance(cbBeacon, new SaveCallback() { @Override public void done(ParseException e) { if (e != null) { Log.e(TAG, "Saving enter attendance failed, message : " + e.getMessage()); } else { Toast.makeText(MainActivity.this, "Saving enter attendance succeed...", Toast.LENGTH_LONG).show(); Log.i(TAG, "Saving enter attendance succeed..."); } } });
10
Dan juga tambahkan function sendExitAttendance pada event onExit untuk memasukkan data checkout ke backend. Log.d(TAG, "Exiting region beacon : " + cbBeacon.toString() + " on interval : " + l + " sec"); sendExitAttendance(cbBeacon, new SaveCallback() { @Override public void done(ParseException e) { if (e != null) { Log.e(TAG, "Saving exit attendance failed, message : " + e.getMessage()); } else { Toast.makeText(MainActivity.this, "Saving exit attendance succeed...", Toast.LENGTH_LONG).show(); Log.i(TAG, "Saving exit attendance succeed..."); } } });
H. Menambahkan Launcer Activity Masuk ke app->src->main->java->folder_projek kemudian add new activity->Empty Activity. Centang di checkbox launcher. Misal dengan nama SplashActivity.
Buat variable private LOGIN_REQUEST dan TARGET_REQUEST di bawah nama class private static final int LOGIN_REQUEST = 0; private static final int TARGET_REQUEST = 1;
Kemudian buat method getParseLoginIntent pada SplashActivity dengan return value Intent. protected Intent getParseLoginIntent() { return new ParseLoginBuilder(this).build(); }
Kemudian setelah itu buat method runDispatch private void runDispatch() { if (ParseUser.getCurrentUser() != null) { AttendanceSDK.getInstance().getDataInBackground(new AttendanceSDK.GetDataCallback() { @Override public void done(@Nullable Exception e) { if (e != null) { Toast.makeText(SplashActivity.this, "Error downloading data, error : " + e.getMessage(), Toast.LENGTH_LONG).show(); return; } startActivityForResult(new Intent(SplashActivity.this, MainActivity.class), TARGET_REQUEST);
11
} }); } else { startActivityForResult(getParseLoginIntent(), LOGIN_REQUEST); } }
Raise event OnActivityResult, tambahkan setResultCode setResult(resultCode); if (requestCode == LOGIN_REQUEST && resultCode == RESULT_OK) { runDispatch(); } else { finish(); }
I. Tambahkan Login UI di dalam AndroidManifest Buka app->src->AndroidManifest.xml dengan konfigurasi script seperti ini :
<meta-data android:name="com.parse.ui.ParseLoginActivity.APP_LOGO" android:resource="@mipmap/ic_launcher" /> <meta-data android:name="com.parse.ui.ParseLoginActivity.PARSE_LOGIN_ENABLED" android:value="true" /> <meta-data android:name="com.parse.ui.ParseLoginActivity.PARSE_LOGIN_EMAIL_AS_USERNAME" android:value="true" />
12
Setelah itu build dan jalankan di smartphone Login, atau register jika belum memiliki user.
Lalu lihat hasilnya di http://attendance.lenscoop.com . Jika anda masuk ke dalam beacon yang ada di backend tersebut, maka anda akan terhitung checkin.
13