android 在锁屏或者休眠时 获取定位以及上传定位信息(用的百度地图定位包)和afinal包(主要用afinalHttp)
package com.example.testgpshttp; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import android.app.Application; public class Location extends Application{ public LocationClient client = null; private static String latitude; private static String longitude; @Override public void onCreate() { // TODO Auto-generated method stub client = new LocationClient(this); super.onCreate(); } }
package com.example.testgpshttp; import java.text.SimpleDateFormat; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import net.tsz.afinal.FinalHttpUtils; import net.tsz.afinal.http.AjaxParams; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; public class GpsService extends Service{ private LocationClientOption option = null; private LocationClient client; private static String latitude; private static String longitude; private SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss"); private static String date; private String serviceUrl = "http://192.168.0.156/testgps/index.php/index/insert"; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { initLBS(); client.registerLocationListener(listener); client.start(); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); } private void postGps() { date = sdf.format(new java.util.Date()); AjaxParams params = new AjaxParams(); params.put("latitude", latitude); params.put("longitude", longitude); params.put("time", date); String result = (String)FinalHttpUtils.finalHttp.postSync(serviceUrl, params); System.out.println(result); System.out.println("post"+latitude+longitude+date); } private Runnable runnable = new Runnable() { @Override public void run() { // TODO Auto-generated method stub postGps(); } }; private void initLBS() { client = ((Location)getApplication()).client; option = new LocationClientOption(); option.setScanSpan(5*1000); option.disableCache(true); option.setCoorType("gcj02"); option.setOpenGps(true); client.setLocOption(option); } private BDLocationListener listener = new BDLocationListener() { @Override public void onReceivePoi(BDLocation poi) { // TODO Auto-generated method stub } @Override public void onReceiveLocation(BDLocation location) { // TODO Auto-generated method stub latitude = null; latitude = null; latitude = String.valueOf(location.getLatitude()); longitude = String.valueOf(location.getLongitude()); Thread thread = new Thread(runnable); thread.start(); } }; public static String getLatitude() { return latitude; } public static String getLongitude() { return longitude; } }
package com.example.testgpshttp; import java.text.SimpleDateFormat; import java.util.Calendar; import net.tsz.afinal.FinalHttpUtils; import net.tsz.afinal.http.AjaxParams; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; public class MainActivity extends Activity { private LocationClientOption option = null; private LocationClient client; private Handler handler = new Handler(); private SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss"); private static String date; private String serviceUrl = "http://192.168.0.156/testgps/index.php/index/insert"; private String testUrl = "http://192.168.0.143/testpost/index.php/index/test"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startService(new Intent(this,GpsService.class)); } }
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testgpshttp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:name=".Location"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.testgpshttp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.baidu.location.f" android:enabled="true"
android:process=":remote">
<!-- <intent-filter>
<action android:name="com.baidu.location.service_v2.9"></action>
</intent-filter>-->
</service>
<service android:name=".GpsService" android:enabled="true"
android:process=":remote">
</service>
<receiver
android:name=".AlarmReceiver"
>
<intent-filter>
<action android:name="android.intent.action.SCREEN_OFF" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
</manifest>
下班时间 写得匆忙 有时间再加 注释 和 把没用的 代码 省去
浙公网安备 33010602011771号