2010년 12월 3일 금요일

[Android]기지국 정보를 이용한 위도, 경도 구하기

public void getPosition(){
  TelephonyManager telephonyManager = (TelephonyManager)activity.getSystemService(Context.TELEPHONY_SERVICE);
  GsmCellLocation gsmLocation = (GsmCellLocation)telephonyManager.getCellLocation();
  int cellID = gsmLocation.getCid();
  int LAC = gsmLocation.getLac();
  String urlString = "http://www.google.com/glm/mmap";          
      
  URL url;
  HttpURLConnection httpConn = null;
  InputStream inputStream;
  DataInputStream dataInputStream;
  try {
   url = new URL(urlString);
   URLConnection conn = url.openConnection();
   httpConn = (HttpURLConnection) conn;      
   httpConn.setRequestMethod("POST");
   httpConn.setDoOutput(true);
   httpConn.setDoInput(true);
   httpConn.connect();

   OutputStream outputStream = httpConn.getOutputStream();
   writeRequest(outputStream, cellID, LAC);
 
   inputStream = httpConn.getInputStream();
   dataInputStream = new DataInputStream(inputStream);

   //---interpret the response obtained---
   dataInputStream.readShort();
   dataInputStream.readByte();
   int code = dataInputStream.readInt();
   Log.d("", "***code:"+code);
   if (code == 0)
   {
    double lat = (double) dataInputStream.readInt() / 1000000D;
    double lng = (double) dataInputStream.readInt() / 1000000D;

    Log.d("", "***lat:"+lat+"  lng"+lng);

    dataInputStream.readInt();
    dataInputStream.readInt();
    dataInputStream.readUTF();

    String uriString = "geo:" + lat + "," + lng;
    // Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uriString));
    //this.context.startActivity(intent);
    Log.d("", "***subGPS true " + uriString);
   }
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 public void writeRequest(OutputStream outputStream, int cellID, int LAC) throws IOException {
     DataOutputStream os = new DataOutputStream(outputStream);
     os.writeShort(21);
     os.writeLong(0);
     os.writeUTF("fr");
     os.writeUTF("Sony_Ericsson-K750");
     os.writeUTF("1.3.1");
     os.writeUTF("Web");
     os.writeByte(27);

     os.writeInt(0);
     os.writeInt(0);
     os.writeInt(3);
     os.writeUTF("");
     Log.d("", "***cellId" + cellID);
     os.writeInt(cellID);  // CELL-ID
//     os.writeInt(20442);  // CELL-ID
     Log.d("", "***LAC" + LAC);
     os.writeInt(LAC);     // LAC
//     os.writeInt(6015);     // LAC
     os.writeInt(0);
     os.writeInt(0);
     os.writeInt(0);
     os.writeInt(0);
     os.flush();
 }

2010년 12월 1일 수요일

[Android]이미지 파일을 갤러리에서 바로 보기

File file = new File("/sdcard/sun.jpg")
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + file.getAbsolutePath()), "image/*");
startActivity(i);

2010년 11월 29일 월요일

[Android]배경이미지 타일 형태로

tile_back.xml
<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
  android:src="@drawable/schedule_detail_bg2"
  android:tileMode="repeat"/>

drawable 폴더에 위와 같은 형태의 xml 파일을 생성하고
배경 이미지로 위 파일을 사용하면 된다.

ex) android:background="@drawable/tile_back"

2010년 11월 28일 일요일

블로그 시작?

첫번째 블로그 글입니다.

블로그를 한번 시작해 보려 합니다. ㅎㅎ