package com.baidu.location.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; import com.baidu.baidulocationdemo.R;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.Poi;
import com.baidu.location.demo.LocationActivity;
import com.baidu.location.demo.LocationApplication; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map; import javax.net.ssl.HttpsURLConnection; /**
* Created by admin on 2016/7/18.
*/
public class MyLocationService extends Service {
private LocationService locationService;
public static String workid; @Override
public IBinder onBind(Intent intent) {
return null;
} @Override
public void onCreate() {
super.onCreate();
Log.i("warn", "oncreate");
} @Override
public void onStart(Intent intent, int startid) {
super.onStart(intent, startid);
// -----------location config ------------
locationService = ((LocationApplication) getApplication()).locationService;
//获取locationservice实例,建议应用中只初始化1个location实例,然后使用,可以参考其他示例的activity,都是通过此种方式获取locationservice实例的
locationService.registerListener(mListener);
//注册监听
Log.i("warn", "onstart");
int type = intent.getIntExtra("from", 0);
if (type == 0) {
locationService.setLocationOption(locationService.getDefaultLocationClientOption());
} else if (type == 1) {
locationService.setLocationOption(locationService.getOption());
}
MyLocationService.workid = intent.getStringExtra("workid");
locationService.start();
} @Override
public void onDestroy() {
Log.i("warn", "ondestroy");
locationService.stop(); //停止定位服务
locationService.unregisterListener(mListener); //注销掉监听
} public BDLocationListener mListener = new BDLocationListener() { @Override
public void onReceiveLocation(BDLocation location) {
// TODO Auto-generated method stub
if (null != location && location.getLocType() != BDLocation.TypeServerError) { final String longitude, latitude, jingdu, speed, city;
//String time = location.getTime();
Date date = new Date();
final long timestamp = date.getTime(); //时间
longitude = Double.toString(location.getLongitude()); //经度
latitude = Double.toString(location.getLatitude()); //纬度
jingdu = Float.toString(location.getRadius()); //精度
city = location.getCity();
speed = Float.toString(location.getSpeed()); //gps下运行速度
final String workid = MyLocationService.workid;
Log.i("workid", workid); new Thread() {
@Override
public void run() {
httpget(workid, timestamp, longitude, latitude, jingdu, city, speed);
}
}.start(); }
} }; public String httpget(String workid, long time, String longitude, String latitude, String jingdu, String city, String speed) { String result = "";
BufferedReader in = null;
StringBuilder buf = new StringBuilder("http://www.agribiotech.cn/record/record/sizerecord");
buf.append("?");
buf.append("workid=" + workid + "&");
buf.append("timestamp=" + time + "&");
buf.append("lng=" + longitude + "&");
buf.append("lat=" + latitude + "&");
buf.append("radius=" + jingdu + "&");
buf.append("city=" + URLEncoder.encode(city) + "&");
buf.append("speed=" + speed); try {
URL url = null;
url = new URL(buf.toString());
URLConnection conn = url.openConnection();
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
conn.connect();
Map<String, List<String>> map = conn.getHeaderFields();
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += "\n" + line;
} } catch (IOException e) {
Log.i("warn", e.toString());
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
}

MyLocationService的更多相关文章

  1. 判断Service是否在运行

    private boolean isServiceRunning() { ActivityManager manager = (ActivityManager) getSystemService(AC ...

  2. static使用实例

    public class LocationActivity extends Activity { //一个Activity传值到service public static String workid ...

  3. LocationActivity

    package com.baidu.location.demo; import com.baidu.baidulocationdemo.R;import com.baidu.location.BDLo ...

随机推荐

  1. EXCEPTION-STRUTS2

      CreateTime--2016年8月29日17:05:50Author:Marydon 声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇到 ...

  2. Log4net的配置-按照日期+文件大小混合分割

    ender name="DebugAppender" type="log4net.Appender.RollingFileAppender"><fi ...

  3. Linux文件大小排序

    ls 文件详情 ls   -S /            ###从大到小排序ls   -Sr /          ###从小到大排就加个-r     -r 翻转ls   -aSr /         ...

  4. 兼顾pc和移动端的textarea字数监控的实现方法

    概述 pc端移动端中文本框监控字数的功能的一种较为简单的实现,考虑到安卓和IOS输入法输入过程中是否触发keyup的差异.利用监听compositionstart判断是否开启了输入法.从而实现体验较为 ...

  5. 【laravel5.4】vue分页删除

    1.a标签执行ajax删除,后台删除成功后,执行vue分页对象删除对应数据 VUE.js

  6. 用curl去探测接口是否正常返回结果,若没有正常返回则触发报警

    现有一需求去curl 在香港的一个接口, 返回值有时正常有时报错 connection reset by peer . 思路: 若 执行成功 $?返回 0  , 不成功则返回其他数字 #!/bin/b ...

  7. mybatis映射文件(转)

    以下内容为转载, 格式未调整,略丑,可直接空降至: [Mybatis框架]输出映射-resultType与resultMap 有时间或看: Mybatis 3.1中 Mapper XML 文件 的学习 ...

  8. atcoder之A Great Alchemist

    C - A Great Alchemist Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB Problem Carol i ...

  9. JavaScript中的陷阱(关于变量声明,函数)

    查看:http://www.css88.com/archives/5347#more-5347

  10. Mysql 操作命令 详解

    目的:1. 掌握mysql的安装,建库.建表.表的三种基本操作.查询.多表查询.数据库的备份与恢复2. MYSQL 服务器的简单维护3. mysql+apache+php的环境搭建 一.如何安装mys ...