Generate api key maps google untuk android

berikut cara untuk generated api key untuk menggunakan maps google pada aplikasi android anda

syaratnya :

  1. Anda sudah menggenerated keystore, keystore dibagi 2 release keystore dan debug keystore (panduan debug.keystore)
  2. Anda sudah membuat package nama aplikasi anda

baca petunjuknya di  https://developers.google.com/maps/documentation/android/start#get_an_android_certificate_and_the_google_maps_api_key

login gmail, kemudian buka https://code.google.com/apis/console/?noredirect klik create project Screen Shot 2014-11-22 at 23.26.45 kemudian cari  Google Maps Android API v2 Screen Shot 2014-11-22 at 23.32.53 klik  off agar menjadi on Screen Shot 2014-11-22 at 23.33.22 google akan membarikan prasyarat kemudian centang i agree dan klik accept Screen Shot 2014-11-22 at 23.32.06 selanjutnya Screen Shot 2014-11-22 at 23.35.12 menuju kiri atas kemudian klik api services Screen Shot 2014-11-22 at 23.40.34 kemudian keluar  menu api accces cari Screen Shot 2014-11-22 at 23.43.28cari tahu sha1 , syaratnya komputer anda sudah terinstal JRE Java anda , untuk lihat sha1 dengan cara (disini nama keystore saya kunci.keystore) keytool -list -v -keystore kunci.keystore

 

Screen Shot 2014-11-23 at 0.02.13 menu Create new Android key Screen Shot 2014-11-22 at 23.42.13 masukkan sha1 dipisah dengan tanda ; kemudian nama pakage aplikasi anda

misalnya 23:13:33:32:3o;com.contohaplikasi

klik create Screen Shot 2014-11-23 at 0.05.47 akan muncul  Key for Android apps (with certificates) Screen Shot 2014-11-23 at 0.08.33

selamat api maps sudah bisa di pakai pada aplikasi anda

 

 

 

🙂

Ditulis dalam android. Tag: . 1 Comment »

error android linux Parsing Data for android-L failed Unsupported major.minor version 51.0

jika anda sedang coding android menggunakan eclipse atau adt  dijumpai error “linux Parsing Data for android-L failed Unsupported major.minor version 51.0” , dan gui  xml layout anda tidak keluar maka solusi untuk error tersebut agar view pada xml kita terlihat adalah mengubah pilihan penggunaan API 20 (nilai berarti “20” menentukan versi android  untuk digunakan ketika merender  layouts). dirubah ke bawah misal 15 dsb

eror_android

klik pada gambar yang diwarnai merah diatas , biasanya terset pada 20, select tulisan 20 tersebut kemudian rubah

eror_android2

rubah ke versi 15 atau bawahnya

semoga berguna  🙂

referensi :

  1. http://stackoverflow.com/questions/24483406/the-project-target-android-l-preview-was-not-properly-loaded
  2. http://stackoverflow.com/questions/24886468/parsing-data-for-android-l-failed-unsupported-major-minor-version-51-0

anatomi / struktur project android

berikut struktur atau anatomi dari sebuah project android pada eclipse

Folder generated:

  • src/ – berisi sourcode java yang kamu tulis
  • gen/ – berisi code basil dari generated  Android/Eclipse. terdapat  R.java – salah satu file penting untuk melakukan name lookup/resolution dan referencing,R.java di hasilkan secara otomatis oleo by the build system dan mereferensikan   resources.
  • assets/ – Folder Assets berisi file static files (seperti file html ,gambar, dsb ) yang  dapat dimasukkan dalam  program.
  • res/ – Folder resources berisi kebutuhan dal am program dan dibagi menjadi 3
    • res/drawables/ – berisi file gambar seperti  PNG, JPG dsb setting icon pada aplikasi juga ada disini
    • res/layouts/ – berisi file XML dimana file xml ini menjadi view dari program dan dapat digunakan untuk mengatur tampilan GUI
    • res/values/ – berisi file XML dimana kamu dapat menentukan string status,text, numeric and nilai constant lainnya.
  • Referenced Libraries/ – A folder containing third-party/downloaded JAR libraries which can be used in your Android App.
  • AndroidManifest.xml – berisi file manifest dimana kamu dapat menentukan Activities, Permissions, dan konfigurasi lainnya.

 

Screen Shot 2014-08-01 at 0.34.35

semoga berguna 🙂

referensi

instalasi andengine GLES 2 pada eclipse

untuk menggunakan andengine pada GLES 2 pada eclipse yang perlu diperhatikan adalah GLES 2 mempunyai minimum requrement yaitu  api 15 atau android 4.0.3 ,

ada beberapa macam cara instal ada

kali ini yang kita gunakan adalahcara 1 yaitu  import project andengine GLES 2

 intalasi andengine dengan menggunakan andengine source

  1. Download projectnya   kemudian extract ke workspace eclipse (tempat file kode -kode yang kita buat pada eclipse)
  2. Buat project dari source tersebut caranya klik File | Import | Existing Project into Workspaceandengine2
    klik next kemudian pada select root directory arahkan ke folder andengine kita, dan hapus centang pada copy project into workspace (karena pada saat kita ekstract andengine kita sudah taruh hasil ekstract ke folder workspace)
    anengine3
  3. kemudian klik kanan  pada project andengine yang  sudah tampil pilih Android | centang Is Library
    andengine4
    andengine5kemudian klik ok
  4. kemudian buat AVD  profil pada emulator (untuk tes) jangan lupa nyalakan gpu pada emulator (centang Use Host GPU), android target api level 15 klik logo android device manager kemudian  klik new dan isi seperti ini
    andengine2

 untuk mengkaitkan pada project kita caranya

klik kanan pada project kita kemudian pilih Android

Screen Shot 2014-07-31 at 23.40.03

kemudian pada tab reference klik Add

 

 

ambil librari andengine (disini librari andenginenya saya namakan Andengine-GLES2 )

 

Screen Shot 2014-07-31 at 23.37.49

ok selesai

semoga berguna 🙂

driver usb thetering cross a27 win xp

download drivernya disini

  1. caranya extract semua kemudian kopi ke
    c: windows/system32/drivers  dan  c: windows/inf
    jika tidak kelihatan foldernya keluarkan dulu (karena biasanya terhidden) dengan cara  organize | Folder and Search Option | View kemudian centang item Show hidden files,folders,or drives
  2. kemudian hilangan centang pada hide  empty drives in the Computer folder ,hide extension for known file types,Hide protected operating system files (Recommended)

hidden

hidden2

kemudian colokkan hp cross anda kemudian aktifkan usb theteringnya melalui menu settings , more , tethering & portable hotspot kemudian centang USB tethering

semoga berguna 🙂

Dasar koneksi http post android

kali ini kita mencoba membuat  koneksi http post pada android

post_tambah

skenarionya

aplikasi ini akan menginsert atau menambah data pada server menggunakan metode  POST
menu pada aplikasi :

  • tambah data : untuk menambah data
  • lihat data :untuk melihat data yang telah di tambah

jangan lupa tambahkan permission android.permission.INTERNET pada android manifest caranya

klik add | uses permission kemudian di kolom name bagian kanan pilih android.permission.INTERNET

file databasenya nama databasenya androidpost


CREATE TABLE IF NOT EXISTS `negara` (
`id_negara` int(11) NOT NULL AUTO_INCREMENT,
`negara` varchar(100) NOT NULL,
PRIMARY KEY (`id_negara`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

file phpnya

tampil.php


<?php

$link = mysql_connect('localhost', 'root', '') or die('Cannot connect to the DB');
mysql_select_db('androidpost', $link) or die('Cannot select the DB');

$sql=mysql_query("select * from negara ");
while($row=mysql_fetch_assoc($sql)) $output[]=$row;
print(json_encode($output));
mysql_close();
?>

tambah.php


<?php
$negara = $_POST['negara'];

$link = mysql_connect('localhost', 'root', '') or die('Cannot connect to the DB');
mysql_select_db('androidpost', $link) or die('Cannot select the DB');

/* grab the posts from the db */
$query = "insert into negara (negara) values('".$negara."')";
$result = mysql_query($query, $link) or die('Error query:  '.$query);
echo "sukkkk";

?>

file insert.java


package com.example.post_android;

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

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class insert extends Activity {
private EditText tambah;
private Button tambah_btn;

/**
* Method yang dipanggil pada saat aplikaasi dijalankan
* */
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.tambah);
tambah = (EditText) findViewById(R.id.tambah);

tambah_btn = (Button) findViewById(R.id.tambah_btn);
//beri perintah
tambah_btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {

eksekusi();

}
});
}
public void eksekusi() {

try {

HttpClient client = new DefaultHttpClient();
//kita mencoba di localhost
String postURL = "http://10.0.2.2/postandroid/tambah.php";

HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("negara",tambah.getText().toString()));

UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {

Toast.makeText(this,"Sukses "+EntityUtils.toString(resEntity), Toast.LENGTH_SHORT).show();
}

} catch (Exception ex) {
Toast.makeText(this, "Tambah Data Gagal !", Toast.LENGTH_SHORT)
.show();
}

}

}

file lihat.java


package com.example.post_android;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import android.app.Activity;
public class lihat extends ListActivity {

List<String> fd_id=new ArrayList<String>();
List<String> fd_name=new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//   setContentView(R.layout.lihat);
String result = null;
InputStream is = null;
StringBuilder sb=null;

//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/postandroid/tampil.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}

//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";

while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}

is.close();
result=sb.toString();

}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}

//try parse the string to a JSON object

try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;

for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
fd_id.add(json_data.getString("id_negara"));
fd_name.add(json_data.getString("negara"));

}

}catch(JSONException e1){
Toast.makeText(getBaseContext(), "Data Tidak ditemukan", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,fd_name));

}

protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l,v,position, id);
String negara = ""+ fd_name.get(position);
String idnya = ""+ fd_id.get(position);
Toast.makeText(this, "name:"+negara+" id:"+idnya, 1).show();
}

}

file MainActivity.java


package com.example.post_android;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);

String[] menu = new String[] { "Tambah Data", "Tampilkan Data"};

this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, menu));
}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Object o = this.getListAdapter().getItem(position);
String pilihan = o.toString();
tampilkanPilihan(pilihan);
}

protected void tampilkanPilihan(String pilihan) {
try {
Intent i = null;
if (pilihan.equals("Tambah Data")) {
i = new Intent(this, insert.class);
} else if (pilihan.equals("Tampilkan Data")) {
i = new Intent(this, lihat.class);
}
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}

file tambah.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
android:id="@+id/tambah"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >

<requestFocus />
</EditText>

<Button
android:id="@+id/tambah_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tambah" />

</LinearLayout>

file lihat.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:background="#3b3b3b">
</ListView>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/TextAppearance.Large"
android:gravity="center"
android:text="Data tidak ditemukan">
</TextView>

</LinearLayout>

file MainActivity.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<Button
android:id="@+id/lihat_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tambah_data"
android:text="Lihat data" />

<Button
android:id="@+id/tambah_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Tambah Data" />

</RelativeLayout>

download kodenya

untuk file phpnya letakkan di folder postandroid

semoga berguna 🙂

Mengganti title bar android

Untuk set title bar android anda dapat menggunakan setTitle()


this.setTitle( "letakkan nama bar disini");

letakkan di methode  on create agar ketika activity dibuka langsung berubah title barnya
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 this.setTitle( "letakkan nama bar disini");
 setContentView(R.layout.table_layout);

}

contoh

nama bar activity pertama
device-2013-06-01-231714

nama bar activity kedua

bar1

download kodenya

semoga berguna 🙂

Tips mempercepat starting emulator yang melambat

kadang ketika kita membuat suatu aplikasi android ,
strating emulator android menjadi lama tidak seperti biasanya . yang bisanya waktu mengaktifkan emulator /strating awal cepat menjadi lambat
solusi tercepat adalah delete semua emulator kemudian create lagi emulatornya,
kemudian emulator akan menjadi normal kembali.

semoga berguna 🙂

Set main activity android

Untuk setting kelas utama /  kelas awal  untuk dieksekusi pada android caranya kita tambahkan code berikut pada file AndroidManifest.xml diantara tag  <activity> dan </activity>


<intent-filter>
 <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

contoh


 <activity android:name="com.example.android_tab.AndroidTabLayoutActivity"
android:label="@string/app_name">

<intent-filter <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" /></intent-filter>

 </activity>


semoga berguna 🙂

Layout pada android

ada beberapa macam layout pada android yang bisa kita gunakan

  1. Absolute Layout
    layout ini hampir sama dengan relative layout tetapi  meletakkan elemen menurut koordinat x dan y dan sudah jarang digunakan

    
     <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"> .... </AbsoluteLayout>
    
    
  2. Frame Layout
    layout ini meletakkan elemen secara menumpuk jadi hanya satu elemen yang terlihat

    
     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"> .... </FrameLayout>
    
    
  3. Linear Layout
    layout ini akan meletakkan elemen  secara berurutan lurus menyamping atau ke bawah ,tergantung orientationnya(vertikal /horisontal)

    linear layout vertikal
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"> .... </LinearLayout>
     linear layout horisontal
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"> .... </LinearLayout>
    
  4. Relative Layout
    layout ini meletakkan elemen dengan bebas dan relatif terhadap elemen2 isi atau elemen induk

    
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android">
     .... </RelativeLayout>
  5. Table Layout
    layout ini meletakkan elemen  kedalam sebuah tabel dalam baris dan kolom

    
     <TableLayout xmlns:android="http://schemas.android.com/apk/res/android">
    <Tablerow>
    disini kita letakkan elemen-elemen / item (ini baris 1)
    </Tablerow>
    <Tablerow>
    disini kita letakkan elemen-elemen / item (ini baris 2)
    </Tablerow>
    </TableLayout>
    

contoh

download kodenya
referensi:
http://www.androidhive.info/2011/07/android-layouts-linear-layout-relative-layout-and-table-layout/
http://developer.android.com/guide/topics/ui/declaring-layout.html
http://mobile.tutsplus.com/tutorials/android/android-layout/
http://www.learn-android.com/2010/01/05/android-layout-tutorial/4/
http://www.androidhive.info/2011/07/android-layouts-linear-layout-relative-layout-and-table-layout/
http://belajarkodeandroid.blogspot.com/2012/12/cara-penggunaan-layout-di-android.html
mudah membuat aplikasi android stepanus hermawan s

semoga berguna 🙂