Sore ini saya berhasil membuat program tool sederhana untuk melakukan probe posisi saya di jaringan GSM. Dengan memanfaatkan Telephony Manager, saya bisa tau cell-id yang meng-cover posisi saya sekarang… Lumayan, kalo komplain GPRS lambat bisa langsung tau kena masalahnya nya pas lagi di cell mana, sehingga membantu proses troubleshot.
“Provides access to information about the telephony services on the device. Applications can use the methods in this class to determine telephony services and states, as well as to access some types of subscriber information. Applications can also register a listener to receive notification of telephony state changes.
Ada 2 fungsi yang menarik yaitu getCellLocation() dan getNeighboringCellInfo(). Dengan fungsi-fungsi tersebut, posisi kita di dalam jaringan GSM/WCDMA bisa diketahui.
Langsung aja buat program HelloAndroid yang gampang dan pasti bisa jalan :)
ardhy@zangetsu:/tmp$ mkdir HelloAndroid ardhy@zangetsu:/tmp$ cd HelloAndroid/ ardhy@zangetsu:/tmp/HelloAndroid$ android create project -t 2 -p . -k com.android.helloandroid -a HelloAndroidSetelah itu, barulah di-permak rame-rame file HelloAndroid.java-nya
ardhy@zangetsu:/tmp/HelloAndroid$ vim src/com/android/helloandroid/HelloAndroid.javaTinggal copy paste aja kode dibawah ini…
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.telephony.TelephonyManager;
import android.content.Context;
public class HelloAndroid extends Activity
{
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
TelephonyManager tm = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
TextView tv = new TextView(this);
tv.setText("## Simple GSM Info ##\n\n
Cell location:\n"+tm.getCellLocation()+"\n\n
Neighboring cells:\n"+tm.getNeighboringCellInfo());
setContentView(tv);
} }Selanjutnya, gunakan ant untuk membangun aplikasi secara otomatis dan langsung pasang (install, red) di HP. Dijamin kaga ada error pas kompilasi :)ardhy@zangetsu:/tmp/HelloAndroid$ ant installDicoba lagi… Jyaaaahh… Error!

Manifest Permission
Usut punya usut, ternyata si aplikasi ini harus diberi permission untuk mengakses coarse — saya tidak tahu, apa ini. Menurut petunjuk dari SDK (file:///home/ardhy/Desktop/SRC/android app/android-sdk-linux_x86-1.5_r2/docs/reference/android/Manifest.permission.html)“String ACCESS_COARSE_LOCATION Allows an application to access coarse (e.g., Cell-ID, WiFi) location
Jadi permission ini harus ditambah supaya aplikasi mendapatkan grant untuk mengakses informasi yang dimaksud.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />Maka saya define permission tersebut di file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.helloandroid" android:versionCode="1" android:versionName="1.0"> <application android:label="@string/app_name"> <activity android:name=".HelloAndroid" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> </manifest>Trus, lakukan uninstall HelloAndroid menggunakan — contoh — pake AppManager, bisa dicari di-market dan lakukan ant install lagi.
Terbaik Bos Adry.....
ReplyDeleteMantap nich :)
tengkyu, Bli...
ReplyDeletecuma iseng kok, itu ada semua di API documentationnya Android, tinggal nyontek doang :)
Dibawah ini ada beberapa link tutorial untuk translasi dari LAC-CID ke LONG-LAT via Google Map -- dapet dari orang lain :D
ReplyDeletehttp://www.devx.com/wireless/Article/40524
http://www.anddev.org/poor_mans_gps_-_celltowerid_-_location_area_code_-lookup-t257.html
Yang dari anddev, dia pake simulator. Data LAC & CID-nya diinput manual, tidak di look-up dari BTS. Jadi objective dia hanya untuk ngetes translasi CID+LAC menjadi LONG-LAT menggunakan Google Map.
Yang kedua -- devx -- dia bisa dipake di HP beneran. Dia pake cara yang sama dengan saya, yaitu TelephonyManager.getCellLocation().
Bedanya, dia menampilkan CID menggunakan getCid() dan LAC menggunakan getLac(), sedangkan saya menampilkannya langsung pake getCellLocation() -- saya juga mo coba ah :D
Selanjutnya, dia juga melakukan translasi ke LONG-LAT pake Google Map.
This comment has been removed by the author.
ReplyDeletejadi untuk yang --devx-- jika saya menggunakan handset bisa langsung dapet CID & LAC nya mas????
ReplyDeleteapa ada kodingan yang harus saya tambah / ubah lagi???
Bisa. Itu bisa langsung dapet infonya.
ReplyDeleteKoding tambahan bisa disesuaikan dengan keinginan.
makasih ya mas,,, nanti klo ada yang ga ngerti saya tanya lagi ya.... ^_^
ReplyDelete