文档章节

Android获取基站坐标代码

SuShine
 SuShine
发布于 2015/06/24 13:55
字数 292
阅读 25
收藏 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;
	}

}

SuShine
粉丝 131
博文 633
码字总数 160326
作品 0
朝阳
后端工程师
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6.2K
18
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
718
1
【opencv】图形的绘制

1.矩形图像的绘制: 原函数:void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8,int shift=0) img就是需要绘制的图像 pt1 and pt......

其实我是兔子
2014/10/08
1.2K
1
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.3K
1
代码生成器--Codgen

Codgen是一个基于数据库元数据模型,使用freemarker模板引擎来构建输出的代码生成器。freemarker的数据模型结构通常来说都是一个Map树状结构模型,codgen也不例外,它的数据模型这棵树的根节...

黄天政
2013/01/29
1.4W
2

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-08-15

最后更新时间: 2020-08-15 03:01 Welders set off Beirut blast while securing explosives - (maritime-executive.com) 焊工在固定炸药的同时引爆了贝鲁特爆炸 得分:144 | 评论:132 Factor......

FalconChen
今天
24
0
OSChina 周六乱弹 —— 老椅小猫秋乡梦 梦里石台堆小鱼

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑 :《MOM》- 蜡笔小心 《MOM》- 蜡笔小心 手机党少年们想听歌,请使劲儿戳(这里) @狄工 :腾讯又在裁员了,35岁以上清退,抖音看到...

小小编辑
今天
61
1
构建高性能队列,你不得不知道的底层知识!

前言 本文收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 上一节,我们一起学习了如何将递归改写为非递归,其中,用到的数据结构主要是栈。 栈和队列...

彤哥读源码
今天
17
0
Anaconda下安装keras和tensorflow

Anaconda下安装keras和tensorflow 一、下载并安装Anaconda: Anaconda下载 安装步骤: 如果是多用户操作系统选择All Users,单用户选择Just Me 选择合适的安装路径 然后勾选这个,自动配置环境...

Atlantis-Brook
今天
7
0
滴滴ElasticSearch千万级TPS写入性能翻倍技术剖析

桔妹导读:滴滴ElasticSearch平台承接了公司内部所有使用ElasticSearch的业务,包括核心搜索、RDS从库、日志检索、安全数据分析、指标数据分析等等。平台规模达到了3000+节点,5PB 的数据存储...

滴滴技术
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部