Laman

Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Create QR Code Reader in Android with ZXing


Android is popular mobile phone OS. Sometime developer want to adding QR Code Scanner/Reader in the application they buid. I want to share my experience creating QR Code Reader in android using ZXing Barcode Scanner.
ZXing ("zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. ZXing project can be found on github https://github.com/zxing/zxing/.
Tutorial using ZXing in android I found great here. http://karanbalkar.com/2013/12/tutorial-65-implement-barcode-scanner-using-zxing-in-android/.

Step 1
Download ZXing. I download from here. Because I use from ZXing project master is not working.
https://gitorious.org/rowboat/external-zxing/source/7620644768ffc235607b3a94671e49518c18686f:qr_scanner

Step 2
Extract downloading file (rowboat-external-zxing folder) then import folder qr_scanner to eclipse.

Step 3
Create folder libs to the root project, then copy file core.jar from folder core (in rowboat-external-zxing folder) paste to folder libs. The project look like this. Set CaptureActivity project as library. (right-click) Properties -> Android -> Check Is Library.
Step 4
Create new android project application. (right click) Project –> Properties –> Android and add the ZXing project (CaptureActivity) as a library.

Android Mengirim Data ke Server PHP dengan Http POST dan AsyncTask

    Pada Android OS versi 2.2-2.3 mungkin menggunakan http post biasa sudah bisa mengirim data dengan proses yang berat dan kadang membuat hp membeku/berhenti bekerja sampai data yang di minta di dapatkan. Namun pada Android OS versi 4.0 ke atas, proses mengirim data menggunakan http post yang berat tersebut jika menggunakan script yang di gunakan pada Android OS versi 2.3 script tersebut tidak akan berjalan walaupun permission internet yang ada manifiest sudah di tambah tetap data tidak akan terkirim, saya sempat pusing di buatnya, cari-cari di internet selama dua hari akhirnya pikiran saya terbuka dan ternyata OS versi 4.0 ke atas proses http di pindah ke background proses, dan salah satu caranya menggunakan AsyncTask. Contoh sederhana pengiriman ke server yang saya buat yaitu login melalui hp Android, mengirimkan data username dan password kemudian di balas oleh server.

Buat sebuah file PHP dan taruh di localhost anda save dengan nama login.php
<?php
$user=$_POST['username'];
$pass=$_POST['password'];
if($user == "admin" && $pass=="admin"){
   echo "Login Sukses";
}else{
   echo "Login Gagal";
}
?>

Android Membuat Folder di SDCARD

Cukup simpel caranya membuat sebuah folder di Android, gunakan saja script berikut.
        File folder = new File(Environment.getExternalStorageDirectory() + "/NewFolder");
        boolean success = true;
        if (!folder.exists()) {
            success = folder.mkdir();
        }
        if (success) {
            // Do something on success
            Toast.makeText(getApplicationContext(), "Folder created", Toast.LENGTH_SHORT).show();
        } else {
            // Do something else on failure
            Toast.makeText(getApplicationContext(), "Failed", Toast.LENGTH_SHORT).show();
        }
Jangan lupa tambahkan permision di AndroidManifiest.xml
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Semoga Bermanfaat.

Export Database Android SQLite ke CSV File

Untuk mengexport database Android dari database .db maupun .sqlite bisa menggunakan opencsv.
Opencsv merupakan library java ber-extensi .jar yang sangat sederhana. Opencsv dikembangkan karena semua parser csv yang dijumpai pengembang tidak memiliki izin komersial yang ramah.
Untuk library Opencsv bisa di download di
http://sourceforge.net/projects/opencsv/
atau dropbox 
Cara penggunaannya copy file .jar opencsv nya ke folder libs


Kemudian tambahkan ke library. Klik kanan project > pilih properties > pilih Java Builder Path > Pilih Tab Libraries > Tambahkan dengan klik Add JARs...
 
Selanjutnya tinggal menggunakan scriptnya saja, misal:
CSVWriter writer = null;
try {
    writer = new CSVWriter(new FileWriter(Environment.getExternalStorageDirectory()+"/myfile.csv"), ',');
    String[] entries = "first#second#third".split("#"); // array of your values
    writer.writeNext(entries);  
    writer.close();
}catch(Exception e){
    //error
}
File csv akan di simpan pada /sdcard dengan nama myfile.csv
Bila script tidak bekerja mungkin perlu di tambahkan permision ke AndroidManifiest.xml
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Referensi dari: stackoverflow.com
Semoga bermanfaat

Flash Stock ROM Nexus 4 Kitkat 4.4 dan Install Firefox OS (FFOS) di Nexus 4

Hari ini sore tadi jam 14.30 an setelah pulang kerja mainan lagi sama Nexus 4, kali ini mau di install Firefox OS. Cara installasinya sangat mudah, tinggal taruh ROM Firefox di SD Card kemudian update zip menggunakan CWM atau sejenisnya. Berhubung kemarin Nexus 4 saya install Ubuntu Touch OS, yang terjadi Firefox OS tidak bisa langsung di install meskipun sudah pakai CWM. Akhirnya ngembaliin Nexus 4 ke ROM bawaan-nya Android (Stock ROM), baru kemudian pasang CWM dan Update zip install Firefox OS.

Untuk mengembalikan ke Stock ROM Nexus 4, tutorial-nya saya ambil di android.gs di bagian Factory Image for Nexus 4.
1. Download occam krt16s factory image.
2. Exctract ‘occam krt16s factory’ zip.
3. PENTING: Langkah ini harus diikuti oleh Anda yang dimiliki Nexus 4 yang memiliki bootloader yang dibuka sebelum menemukan panduan ini.
- Gunakan Text Editor (NotePad atau sejenisnya) dan klik kanan pada flash-all.bat (Windows PC) / flash-all.sh (Mac / Linux) untuk mengeditnya. Pastikan untuk tidak menjalankan file secara tidak sengaja.
- Kemudian, hapus "-w" di baris
fastboot update. "-w" adalah perintah yang memberitahu fastboot untuk menghapus telepon Anda.
- Kemudian simpan dan lanjutkan ke langkah berikutnya.

4.
Jangan lupa masuk ke mode downloading (Flashboot mode) dengan menekan tombol volume bawah + Power.
5. Jika Anda menggunakan OS Windows, buka
Command Prompt, jika Anda menggunakan OS Linux buka terminal, kemudian masuk ke folder tempat Anda meng-extract file
‘occam krt16s factory’ zip.
6. - Untuk OS Windows masukkan
baris perintah 
flash-all.bat, kemudian tekan Enter dan tunggu sampai instalasi selesai.
- Untuk OS Linux tinggal jalankan
flash-all.sh, kemudian Enter dan tunggu sampai installasi selesai.
7. Instalasi
Android 4.4 KitKat membutuhkan waktu beberapa menit untuk menyelesaikan, sehingga Anda tidak harus menekan tombol apapun sampai setiap file berhasil di flash.
8. Ketika
instalasi selesai, telepon Anda akan reboot dalam mode normal dan kemudian Anda bisa menutup Command Prompt dan lepaskan HP dari komputer Anda.

Link Video Flash Android Kitkat 4.4


Unity Android OnGUI Controller

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {
    float maxSpeed = 10f;
    Animator anim;
    bool faceright = true;
    bool grounded = false;
    float groundRadius = 0.2f;
    public Transform groundCheck;
    public LayerMask whatIsGround;
    float jumpForce = 600f;
    float move = 0;
   
    //gui button
    public GUIStyle customButton;
    public Texture btnTexture1,btnTexture2,btnTexture3;
    private Rect posBtnJump =new Rect(Screen.width - 80,Screen.height -80, 70, 70);
    private Rect posBtnLeft =new Rect(10,Screen.height - 80, 70, 70);
    private Rect posBtnRight =new Rect(90,Screen.height - 80, 70, 70);
   
    // Use this for initialization
    void Start () {
        anim = GetComponent();
    }
   
    void FixedUpdate(){
        grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
        anim.SetBool("Ground",grounded);
        //if(!grounded)return;

        //using arrow on keyboard
        //move = Input.GetAxis("Horizontal");

        transform.Translate(new Vector2(move * maxSpeed * Time.deltaTime,0));
        //rigidbody2D.velocity = new Vector2(move * maxSpeed,rigidbody2D.velocity.y);
        anim.SetFloat("Speed", Mathf.Abs(move));
        //flip
        if(move > 0 && !faceright){flip();}else if(move < 0 && faceright){flip();}
       
    }

    //Flipping player
    void flip(){
        faceright = !faceright;
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }
   
    // Update is called once per frame
    void Update () {
        /* Jump using Space
         * if (Input.GetKeyDown(KeyCode.Space) && grounded){
            anim.SetBool("Ground",false);
            rigidbody2D.AddForce(new Vector2(0, jumpForce));
            grounded = false;
        }*/
        for (int i = 0; i < Input.touchCount; ++i){
            Touch touch = Input.GetTouch(i);
            // Get touch point and invert Y-axis.
            Vector2 touchPoint = touch.position;
            touchPoint.y = Screen.height - touchPoint.y;
            if (touch.phase == TouchPhase.Began){
                if (posBtnJump.Contains(touchPoint) && grounded){
                    anim.SetBool("Ground",false);
                    rigidbody2D.AddForce(new Vector2(0, jumpForce));
                    grounded = false;
                }
            }
            if (touch.phase == TouchPhase.Stationary){
                if (posBtnLeft.Contains(touchPoint)){
                    move= -1f;
                }else if (posBtnRight.Contains(touchPoint)){
                    move= 1f;
                }
            }else{
                move = 0;
            }
        }

        //Exit application
        if (Input.GetKeyUp(KeyCode.Escape)){
            Application.Quit();
            return;
        }
    }
   
    void OnGUI() {
        if (!btnTexture1 || !btnTexture2 || !btnTexture3) {
            Debug.LogError("Please assign a texture on the inspector");
            return;
        }
       
        //left
        GUI.RepeatButton(posBtnLeft, btnTexture1, customButton);
        //right
        GUI.RepeatButton(posBtnRight, btnTexture2, customButton);
        //jump
        GUI.Button(posBtnJump, btnTexture3, customButton);
       
    }
}

Android EditText Array

     Untuk menjadikan EditText sebagai Array bisa melihat contoh di bawah. Masukkan script ini pada main script (.java), maka akan terbuat EditText Otomatis sebanyak perulangan yang diinginkan.



import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

EditText ed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
                //Membuat array EditText
List<EditText> allEds = new ArrayList<EditText>();
for (int i = 0; i < 4; i++) {   
   ed = new EditText(this);
   allEds.add(ed);
   ed.setText("a"+i);
   ll.addView(ed);
}
TextView tv = new TextView(this);
ll.addView(tv);

                //Menampilkan ke layout android
this.setContentView(ll);

                //Menampilkan isi EditText ke TextView tv.setText(allEds.get(1).getText().toString());
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}


Selamat mencoba, Semoga bermanfaat

Pemrograman Android

       Tadi siang saya ngajak teman saya ngobrol tentang pemrograman android, tiba-tiba dia ngasih e-book 24 jam pintar pemrograman android.

Bukunya sangat menarik. Silahkan download e-booknya disini(mediafire).

Semoga bermanfaat.

Membuat Aplikasi Android: Pengenalan

       Android adalah system operasi mobile berbasis linux. Untuk yang belum kenal apa itu android silahkan googleling. Aplikasi android bisa kita buat melalui eclipse dengan menginstall ADT dan SDK androidnya pada eclipse tersebut. IDE Eclipse adalah sebuah software IDE pemrogramman java yang cukup terkenal. adanya IDE juga cukup membantu kita dalam bermain coding saat membuat aplikasi. Saat kita akan mendevelope aplikasi android akan cukup membantu dengan adanya sebuah IDE, Eclipse memungkinkan untuk mendevelope android. Membuat Aplikasi Android Dengan Eclipse + ADT.

       Membuat Aplikasi Android Dengan Eclipse + ADT Anda dapat mendownloadnya di situs resminya di http://developer.android.com/sdk/index.html sesuaikan dengan sistem operasi yang anda gunakan. Setelah didownload, kemudian jalankan setup (khusus untuk windows dan komputer terkoneksi internet) maka setup akan mendownload android repository dan beberapa Third Party addon. Jika anda mendownload yang berupa file terkompres, setelah didownload kemudian extract lalu jalankan SDK Manager.exe.

Disini saya punya tutorial sederhana membangun Eclipse + ADT dan disertai dengan tutorial membuat aplikasi android sederhana yang saya dapakan dari teman saya yang kuliah di Surabaya. Silahkan download filenya di sini(mediafire)[http://www.mediafire.com/?8cm5mt2piozkepz].

Semoga dapat membantu, dan menjadi inspirasi.