文档章节

Android获取基站坐标代码

SuShine
 SuShine
发布于 2015/06/24 13:55
字数 292
阅读 15
收藏 0
点赞 0
评论 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
粉丝 118
博文 435
码字总数 88625
作品 0
青岛
后端工程师
Appium 1.8.0 发布,全面支持 W3C WebDriver 规范

Appium 是一个开源、跨平台的自动化测试工具,最初主要用于测试原生和轻量移动应用,包括 iOS 和 Android ,目前还支持对 Windows 平台上的应用的自动化测试。 Appium 1.8.0 发布,引入了对 ...

王练 ⋅ 04/25 ⋅ 0

Android Camera&Matrix图像变换

Camera与Matrix Android UI系统中,Camera充当着相机的角色,无论是系统成像还是UI绘制。都离不开Camera。但是在Android系统中,存在两种Camera,一种是视觉成像的(拍照、摄像),另一种是图...

IamOkay ⋅ 04/04 ⋅ 0

使用Python制作微信跳一跳半自动外挂+详细注释

思路 1.截取安卓手机当前屏幕图片并复制到Mac。 知识点:ADB工具--截屏命令 2.测量截图中两方块之间的距离。知识点:Matplotlib制图工具 3.根据距离判断手机所需按下的时间。 4.通过鼠标控制...

earth9 ⋅ 04/16 ⋅ 0

Android - 绘制带有渐变色的折线图

图表绘制的需求在安卓开发中并不少见。常见的有饼图,柱状图,折线图等等。 在这里,我们可以给折线图添加一些色彩。除了线条本身的颜色外,还可以增加一些“花样”——渐变色。填充空余的地...

RustFisher ⋅ 06/11 ⋅ 0

Android自定义Tablayout下划线指示器Indicator:设置宽高、圆角、渐变颜色

Android自定义Tablayout下划线指示器Indicator:设置宽高、圆角、渐变颜色 Android原生的Tablayout下面有一个指示器(指示线、下划线),如图所示: 详情见附录1。 但是Android原生的Tablayo...

zhangphil ⋅ 04/27 ⋅ 0

Matrix, ColorMatrix

作为Android源码中的一个常用类,它的作用是持有一个3*3的矩阵数组,用于坐标的转换。 Matrix用来制作动画效果、改变图片大小、给图片加各类滤镜等。 Matrix 的应用 - 压缩图像;Matrix 的应...

shareus ⋅ 04/13 ⋅ 0

Android HookActivity一行代码实现开屏广告

需求背景 多个产品线都需要实现开屏广告,我们产品广告都是接的我们自家广告SDK,而只是几行代码请求我们广告,广告SDK会把View封装好返回来,要做的事情只是获取响应结果,并且出来. 如何实...

xwdz ⋅ 05/09 ⋅ 0

Android之Intent(一)

通过Intent类可以 实现页面之间的跳转。这点和AS / Egret , 以及Html前端不一样,本篇讲解A界面跳转到B界面 ,并且A界面向B界面传递一个参数。 一 :界面设计 ①, A (activity.main.xml)...

Aonaufly ⋅ 06/06 ⋅ 0

Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)

一、前言 app在线更新是一个比较常见需求,新版本发布时,用户进入我们的app,就会弹出更新提示框,第一时间更新新版本app。在线更新分为以下几个步骤: 在线更新就上面几个步骤,前2步比较简...

codeGoogle ⋅ 04/28 ⋅ 0

安卓SurfaceView 实现下雨效果

安卓SurfaceView 实现下雨效果 先来一张效果图 我的思路:下雨每个雨滴用一条线来实现,生成一条线,X轴坐标随机,Y轴不断增加,就形成了下雨的效果 1.首先定义mSurfaceView类,继承Serfacevi...

思考往前 ⋅ 05/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于“幂等”操作

一个幂等(idempotent)操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同. 开发中, 我们经常考虑幂等操作的场景有“接口调用”、“MQ消费”、“自动任务”等 接口调用, 可能出现...

零二一七 ⋅ 31分钟前 ⋅ 0

Dubbo服务服务暴露之ProxyFactory Invoker

Dubbo服务暴露过程中有涉及到调用ProxyFactory 中方法获取Invoker对象的过程,现在我们来深究下源码,来看下这个过程是在做些什么,返回的Invoker 对象是什么,我们来看一下代码的切入点: ...

哲别0 ⋅ 45分钟前 ⋅ 0

GP两种连接方式性能测试

GP两种连接方式性能测试 Pivotal import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class GPQueryStrin......

仔仔1993 ⋅ 49分钟前 ⋅ 0

jsonrpc-4j代码解析

解析文件 AutoJsonRpcServiceImplExporter JsonServiceExporter AutoJsonRpcServiceImplExporter 路径:com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImplExporter AutoJsonRpcServi......

郭恩洲_OSC博客 ⋅ 今天 ⋅ 0

百度搜索

from selenium import webdriver import time brower=webdriver.Firefox() brower.get('http://www.baidu.com') input=brower.find_element_by_id('kw') input.send_keys('中南大学') time.s......

南桥北木 ⋅ 今天 ⋅ 0

tomcat 日志记录器

1、日志记录器是记录消息的组件 日志记录器需要与某个servlet 容器相关联 2、Logger 接口 共定义了5种日志级别:FATAL、ERROR、WARNING、INFORMATION、DEBUGGER setVerbosity 设置级别 setC...

职业搬砖20年 ⋅ 今天 ⋅ 0

Thrift RPC实战(三) Thrift序列化机制

1.Thrift基础架构 Thrift是一个客户端和服务端的架构体系,数据通过socket传输; 具有自己内部定义的传输协议规范(TProtocol)和传输数据标准(TTransports); 通过IDL脚本对传输数据的数据结构...

lemonLove ⋅ 今天 ⋅ 0

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

今天心情不错,因为昨天晚上观看了世界杯比赛,尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊,因此我联想到了自己的博客网站,我的博客是去年年底上线的,一直想建设一个关于读书和读后感作...

原创小博客 ⋅ 今天 ⋅ 0

linux 信号机制

signal(SIGPIPE, SIG_IGN); TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端只是收到FIN包. 按照TCP协...

xxdd ⋅ 今天 ⋅ 0

my.cnf, my-small.cnf, my-medium.cnf, my-large.cnf

1. my-small.cnf # Example MySQL config file for small systems.## This is for a system with little memory (<= 64M) where MySQL is only used# from time to time and it's importa......

周云台 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部