文档章节

Android获取基站坐标代码

SuShine
 SuShine
发布于 2015/06/24 13:55
字数 292
阅读 17
收藏 0
package com.su.station;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.telephony.gsm.GsmCellLocation;
import android.util.Log;
import android.widget.Toast;

public class TestStationLocationActivity extends Activity {
    private static final String TAG = "TestStationLocationActivity";

	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Location location = getportLocation();
        location.getLongitude();
        Toast.makeText(this, location.getLatitude()+location.getLatitude()+"", 100).show();
        
    }
    
    private Location getportLocation() {
		Location loc = null ;
		TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
		BufferedReader br = null;
		try 
		{	
			GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation();
		        if (null == gcl)
		        {
		                return null;
		        }
		            int cid = gcl.getCid();
		            int lac = gcl.getLac();
		            int mcc = Integer.valueOf(tm.getNetworkOperator().substring(0,3));
		            int mnc = Integer.valueOf(tm.getNetworkOperator().substring(3,5));
		            JSONObject holder = new JSONObject();
		            holder.put("version", "1.1.0");
		            holder.put("host", "maps.google.com");
		            holder.put("request_address", true);
		            
		            JSONArray array = new JSONArray();
		            JSONObject data = new JSONObject();
		            
		            data.put("cell_id", cid);
		            data.put("location_area_code", lac);
		            data.put("mobile_country_code", mcc);
		            data.put("mobile_network_code", mnc);
		            array.put(data);
		            holder.put("cell_towers", array);
		            DefaultHttpClient client = new DefaultHttpClient();
		            HttpPost post = new HttpPost("http://www.google.com/loc/json");
		            StringEntity se = new StringEntity(holder.toString());
		            post.setEntity(se);
		            HttpResponse resp = client.execute(post);
		            if (resp.getStatusLine().getStatusCode() == 200) 
		        {
		                HttpEntity entity = resp.getEntity();
		                    br = new BufferedReader(new InputStreamReader(entity.getContent()));
		                    StringBuffer sb = new StringBuffer();
		                    String result = br.readLine();
		                    while (result != null) 
		                    {
		                            sb.append(result);
		                            result = br.readLine();
		                    }
		                    
		                    JSONObject data_ = new JSONObject(sb.toString());
		                    data_ = (JSONObject) data_.get("location");
		                loc = new Location(LocationManager.NETWORK_PROVIDER);
		                loc.setLatitude((Double) data_.get("latitude"));
		                loc.setLongitude((Double) data_.get("longitude"));
		                Log.i(TAG, "latitude : " + loc.getLatitude() + "  longitude : " + loc.getLongitude());
		                return loc;
		        }
		        return null;

		} 
		
		catch (Exception e) 
		{
		        android.util.Log.e(TAG, "network get the latitude and longitude ocurr Exception error", e);
		}
		finally
		{
		        if (null != br)
		        {
		                try 
		                {
		                        br.close();
		                } 
		                catch (IOException e) 
		                {
		                        android.util.Log.e(TAG, "network get the latitude and longitude when closed BufferedReader ocurr IOException error", e);
		                }
		        }
		}
		return loc;
	}

}

本文转载自:http://blog.csdn.net/sfshine/article/details/7540363

共有 人打赏支持
SuShine
粉丝 123
博文 504
码字总数 148653
作品 0
朝阳
后端工程师
Android系列之Wifi定位

Android系列之Wifi定位 Broncho A1还不支持基站和WIFI定位,Android的老版本里是有NetworkLocationProvider的,它实现了基站和WIFI定位,但从 android 1.5之后就被移除了。本来想在broncho A...

欢喜王子WIY
2012/06/06
0
0
Android得到控件在屏幕中的坐标

getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow ,计算该视图...

laoyang1018
2012/09/19
0
0
Android Animation学习笔记

关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画...

xiahuawuyu
2012/11/21
0
0
android基站定位程序获取地理位置

目录 一、设置界面 二、为按钮绑定事件 三、获取基站信息 四、获取经纬度 五、获取物理位置 六、显示结果 七、运行程序 八、总结 九、程序代码 正文 在Android操作系统下,基站定位其实很简单...

henry-zhang
2015/05/28
0
0
Android animation 学习

关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画...

所属暮雪
2014/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Django支持中文

django是支持中文界面, 先找到Django语言包安装目录,我的在: /usr/local/python3/lib/python3.6/site-packages/django/conf/locale 有zh-Hans和zh-Hant两个文件, 其中zh-Hans是简体中文,...

MichaelShu
15分钟前
1
0
迷宫问题:顺序栈解法

采用顺序栈以及回溯法,一个比较简单的问题,但是从来没有写过,也算是弥补一下自己欠数据结构的债吧,居然也花了一个半小时,无地自容了。。 定义好数据结构求解算法就显得容易一些了。 st...

LoSingSang
21分钟前
0
0
Zookeeper 概述及应用场景

一、概述 分布式协调技术,主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。 ZooKeeper是一个分布式的,开放源码的分布式应用...

PeakFang-BOK
29分钟前
0
0
(译)OpenGL ES2.0 – Iphone开发指引

教程截图: OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API。 如果你之前接触过 cocos2d,sparrow,corona,unity 这些框架,你会发现其实它们都是基于OpenGL上创建的。 多数程序员...

robslove
39分钟前
0
0
金九银十跳槽季,程序员面试点解析之Java专场

前言 近年来Java工程师这个岗位炙手可热,市场需求大,学习Java的人也越来越多,所以IT企业与求职者的选择都比较多,那么IT企业在面试时都会提哪些问题呢。下面为大家分享 Java高级工程师面试...

老道士
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部