Lanjut ke konten
8 Maret 2012 / Jeffrey Hermanto Halimsetiawan

Mendeteksi State Aplikasi Menjadi Active atau Inactive pada J2ME

Pada beberapa handphone Nokia, saat kita menekan tombol end call saat sebuah aplikasi aktif maka aplikasi tersebut akan menjadi tidak aktif dan masih tersimpan di task manager. Kasus lain terjadi saat kita menerima panggilan telepon maka state aplikasi tersebut akan menjadi tidak aktif. Sebagai contoh pada handphone Nokia N8-00, saat kita menekan tombol yang diberi tanda lingkaran merah di bawah ini maka secara otomatis state aplikasi akan menjadi inactive.

NokiaN8

Isu kegagalan yang sering terjadi dalam proses Quality Assurance (QA) di Nokia Store adalah seringkali BGM (Background Music) masih berjalan saat status aplikasi telah menjadi inactive.

Lalu, bagaimanakah cara kita mendeteksi bahwa state dari aplikasi tersebut akan berubah menjadi active atau inactive? Pada kelas yang merupakan turunan dari Canvas atau GameCanvas, method hideNotify() dan showNotify() harus di-override agar BGM dapat terlebih dahulu dihentikan saat state dari aplikasi akan berubah menjadi inactive.

protected void hideNotify() {

}
protected void showNotify() {

}

Method hideNotify() akan dipanggil sesaat sebelum status aplikasi menjadi inactive dan method showNotify() akan dipanggil sesaat sebelum status aplikasi menjadi active.

Selamat mencoba!

7 Maret 2012 / Jeffrey Hermanto Halimsetiawan

Melakukan Request untuk Membuka Situs Web di Browser pada J2ME

Ada kalanya, seorang developer menginginkan agar aplikasinya dapat membuka sebuah situs web pada browser yang tersedia pada feature phone / smart phone. Misalnya, kita menginginkan mempromosikan aplikasi lain yang ada pada Nokia Store pada halaman tertentu dari aplikasi kita yang telah diunduh oleh pengguna. Sebagai contoh, button visit us pada game Petualangan Aksara di Bali dari Aksara Studio berikut:

Petualangan Aksara di Bali - Aksara Studio

Petualangan Aksara di Bali - Aksara Studio

Langkah yang harus dilakukan sangatlah mudah, tambahkan method berikut pada kelas yang merupakan turunan dari kelas MIDlet:

public void openURL(String url) throws ConnectionNotFoundException {
    if (platformRequest (url) == true)
    {
        // MIDlet harus keluar sebelum browser dapat muncul
        exitMIDlet();
    }
}

Sebagai contoh penggunaan, panggilah method openURL() tersebut dengan cara:

openURL("http://store.nokia.com/publisher/AksaraGames");

Secara otomatis, aplikasi akan membuka browser dan menampilan konten dari URL yang diminta.

Selamat mencoba!

7 Maret 2012 / Jeffrey Hermanto Halimsetiawan

Menggambar Image dengan Fungsi Transformasi pada J2ME

Pada Java SE, transformasi image dapat dengan mudah dilakukan dengan menggunakan kelas AffineTransform untuk melakukan berbagai macam fungsi transformasi seperti translate, scale, rotate, dan sebagainya. Sebagai contoh:

public void paint(Graphics g) {
    AffineTransform t = new AffineTransform();
    t.scale(2,1);
    t.translate(15,5);
    Graphics2D g2d = (Graphics2D)g;
    g2d.setTransform(t);
}

Berbeda dengan Java SE, kelas Graphics pada Java ME tidak mendukung method setTransform() sehingga AffineTransform pun tidak dapat digunakan. Namun, Java ME masih menyediakan cara untuk menggambar image dengan beberapa fungsi transformasi sederhana dengan menggunakan method drawRegion(), sebagai contoh:

public void draw(Graphics g) {
    try {
        Image img = (Image) Image.createImage("/AksaraStudio.png");
        int x = 10;
        int y = 5;
        int transformation = Sprite.TRANS_ROT180;
        g.drawRegion(img, 0, 0, img.getWidth(), img.getHeight(), transformation,
                          x, y, Graphics.TOP | Graphics.LEFT);
    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

Beberapa jenis transformasi yang dapat dilakukan dengan mengubah nilai variabel transformation antara lain:

    • Sprite.TRANS_NONE
    • Sprite.TRANS_ROT90
    • Sprite.TRANS_ROT180
    • Sprite.TRANS_ROT270
    • Sprite.TRANS_MIRROR
    • Sprite.TRANS_MIRROR_ROT90
    • Sprite.TRANS_MIRROR_ROT180
    • Sprite.TRANS_MIRROR_ROT270

Selamat mencoba!

7 Maret 2012 / Jeffrey Hermanto Halimsetiawan

Menentukan Orientasi UI Menjadi Portrait atau Landscape pada J2ME

Saat melakukan proses pengembangan aplikasi pada smartphone yang telah mendukung orientasi portrait dan landscape, tentunya developer akan dihadapkan pada 2 pilihan yaitu:

  1. Mengembangkan aplikasi yang mendukung baik orientasi portrait dan landscape
  2. Mengembangkan aplikasi yang hanya mendukung orientasi portrait atau landscape

Pilihan pertama merupakan pilihan yang paling ideal, namun tentu saja membuat desain layout yang mendukung kedua orientasi tersebut bukanlah pekerjaan yang ringan terutama jika aplikasi yang dikembangkan adalah sebuah game. Sebagai contoh, game Angry Birds yang dikembangkan oleh Rovio dan juga Fruit Ninja yang dikembangkan oleh Halfbrick. Jadi, pilihan kedua merupakan pilihan yang paling rasional dalam mengembangkan sebuah game.

Beberapa ponsel Nokia telah mendukung adanya JAD dan JAR manifest atribut yang memungkinkan MIDlet untuk memaksa orientasi UI menjadi portrait atau landscape. Caranya pun sangat mudah yaitu dengan menambahkan atribut berikut:

Nokia-MIDlet-App-Orientation: landscape

atau

Nokia-MIDlet-App-Orientation: portrait

pada file berekstensi .jad dan juga file MANIFEST.MF yang terdapat pada file berekstensi .jar nya. Sebagai contoh, game Waroeng Ekspres Jawa dari Aksara Studio yang hanya mendukung orientasi landscape.

weJawaTouch2

Semoga bermanfaat!

PS: Orientasi fixed landscape tidak dapat ditentukan pada Nokia 5800 Xpress Music karena software komersial pertama yang dirilis untuk S60 5th Edition v0.9 SDK tidak mendukung fitur tersebut.

7 Maret 2012 / Jeffrey Hermanto Halimsetiawan

Membuat Emulator Perangkat J2ME Kustomisasi

Sebagai seorang J2ME mobile developer, kadangkala kita dihadapkan pada keadaan dimana kita harus mem-porting aplikasi ke berbagai perangkat dengan ukuran layar yang berbeda seperti: 320×240, 240×320 atau bahkan 360×640. Berbagai vendor telah menyediakan J2ME emulator masing-masing, namun pada umumnya emulator tersebut sangatlah lambat pada waktu diaktifkan dan juga ada kalanya tidak tersedia emulator dengan ukuran layar yang kita butuhkan. Untuk meningkatkan produktivitas dalam proses development, kustomisasi emulator J2ME standar merupakan salah satu solusinya.

Berikut adalah langkah-langkah untuk menambahkan J2ME emulator dengan ukuran layar sentuh 800×480 pixels:

  1. Unduh file zip yang berisi standard CLDC device dengan ukuran layar 800×480 dan beberapa button pada tautan ini.
  2. Unzip file zip tersebut pada direktori instalasi Java ME SDK 3.0. Bagi pengguna Netbeans 7.0.1, direktori instalasinya terletak pada C:\Program Files\NetBeans 7.0.1\mobility\Java_ME_platform_SDK_3.0
  3. Restart Java ME SDK 3.0 Device Manager

image

Emulator baru dengan nama Skin800x480 telah siap untuk digunakan.

Emulator Skin800x480

Selamat mencoba!

NB: Panduan lengkap mengenai kustomisasi emulator J2ME dapat dilihat pada tautan berikut.

Rancang situs seperti ini dengan WordPress.com
Mulai