우선 소스는 아래와 같습니다.

public class CellID extends Activity 
{
	GsmCellLocation location;
    int cellID, lac;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        TelephonyManager tm  = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
        location = (GsmCellLocation) tm.getCellLocation();
 
        cellID = location.getCid();
        lac = location.getLac();
 
        Button btnDisplayMap = (Button) findViewById(R.id.displayMap);
 
        btnDisplayMap.setOnClickListener(new OnClickListener()
        {
            public void onClick(View arg0)
            {
                //---obtain the CellID and LAC of the device---
                CellLocation.requestLocationUpdate();        
                cellID = location.getCid();
                lac = location.getLac();
 
                //---for testing only---
                //cellID = 5496;        
                //lac = 6037;
                //----------------------
 
                try {
                    if (!displayMap(cellID, lac))
                    {
                        TextView t = (TextView) findViewById(R.id.status);
                        t.setText("Location not found!");
                    }
 
                } catch (Exception e) {                    
                    e.printStackTrace();
                } 
            }
        });
 
 
 
    }
 
    private boolean displayMap(int cellID, int lac) throws Exception 
    {
        String urlString = "http://www.google.com/glm/mmap";            
 
        //---open a connection to Google Maps API---
        URL url = new URL(urlString); 
        URLConnection conn = url.openConnection();
        HttpURLConnection httpConn = (HttpURLConnection) conn;        
        httpConn.setRequestMethod("POST");
        httpConn.setDoOutput(true); 
        httpConn.setDoInput(true);
        httpConn.connect(); 
 
        //---write some custom data to Google Maps API---
        OutputStream outputStream = httpConn.getOutputStream();
        WriteData(outputStream, cellID, lac);       
 
        //---get the response---
        InputStream inputStream = httpConn.getInputStream();  
        DataInputStream dataInputStream = new DataInputStream(inputStream);
 
        //---interpret the response obtained---
        dataInputStream.readShort();
        dataInputStream.readByte();
        int code = dataInputStream.readInt();
        if (code == 0) {
            double lat = (double) dataInputStream.readInt() / 1000000D;
            double lng = (double) dataInputStream.readInt() / 1000000D;
            dataInputStream.readInt();
            dataInputStream.readInt();
            dataInputStream.readUTF();
 
            //---display Google Maps---
            String uriString = "geo:" + lat
                + "," + lng;
            Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
                Uri.parse(uriString));
            startActivity(intent);
            return true;
        }
        else
        {        	
        	return false;
        }
    }  
 
    private void WriteData(OutputStream out, int cellID, int lac) 
    throws IOException
    {    	
        DataOutputStream dataOutputStream = new DataOutputStream(out);
        dataOutputStream.writeShort(21);
        dataOutputStream.writeLong(0);
        dataOutputStream.writeUTF("en");
        dataOutputStream.writeUTF("Android");
        dataOutputStream.writeUTF("1.0");
        dataOutputStream.writeUTF("Web");
        dataOutputStream.writeByte(27);
        dataOutputStream.writeInt(0);
        dataOutputStream.writeInt(0);
        dataOutputStream.writeInt(3);
        dataOutputStream.writeUTF("");
 
        dataOutputStream.writeInt(cellID);  
        dataOutputStream.writeInt(lac);     
 
        dataOutputStream.writeInt(0);
        dataOutputStream.writeInt(0);
        dataOutputStream.writeInt(0);
        dataOutputStream.writeInt(0);
        dataOutputStream.flush();    	
    }
 
 
}

GPS 로 위치를 찾지 못하였을 경우 CELL 방식으로 위치를 찾기위해 위에 소스를 참고 하였습니다.
그런데 원래 CELL 방식으로 위치 값 가져오는 것이 GPS로 가져오는 것 보다 더 어렵나요??
양재역 근처 실외에서 테스트 해봤는데 위치를 거의 가져오지 못 하더라구요.실내에서도 마찬가지구요.
혹시 위에 소스를 그대로 사용한는것이 아니라 수정해야 할 부분이 있는지
아님 CELL 방식으로 위치를 가져오는 다른 참고할 만한 소스나 사이트 알려주시면 정말 감사하겠습니다.
즐거운 추석 되시구요~^^